/** * @see https://developers.facebook.com/docs/facebook-login/access-tokens#termtokens */ public function testExtendUserAccessToken() { $user = create_test_user(); $access_token = new Gajus\Fuss\AccessToken($this->app, $user['access_token'], Gajus\Fuss\AccessToken::TYPE_USER); $this->assertGreaterThan(3600, $access_token->getExpirationTimestamp() - time(), 'Short-term access token have a lifetime of at least 1 hour.'); $this->assertLessThan(3600 * 2, $access_token->getExpirationTimestamp() - time(), 'Short-term access token have a lifetime of at most 2 hours.'); $this->assertFalse($access_token->isLong()); $access_token->extend(); $this->assertGreaterThan(86400 * 30, $access_token->getExpirationTimestamp() - time(), 'The long-term access token have a lifetime of at least 30 days.'); $this->assertTrue($access_token->isLong()); return $access_token; }
public function testGetAccessTokenWhenFromCode() { $test_user = create_test_user(); $access_token = new \Gajus\Fuss\AccessToken($this->app, $test_user['access_token'], \Gajus\Fuss\AccessToken::TYPE_USER); $access_token->extend(); $code = $access_token->getCode(); $signed_request = make_signed_request(['code' => $code]); $access_token = $signed_request->getAccessToken(); $this->assertInstanceOf('Gajus\\Fuss\\AccessToken', $access_token); // "In some cases, this newer long-lived token might be identical to the previous one, but we can't guarantee it and your app shouldn't depend upon it." // @see https://developers.facebook.com/docs/facebook-login/access-tokens#refreshtokens #$this->assertSame($test_user['access_token'], $access_token->getPlain()); $this->assertSame($test_user['id'], $access_token->getInfo()['data']['user_id']); }