2

このシナリオで使用するには、Facebookセッションキーが必要です:http://developers.facebook.com/docs/chat/#platauth

ただし、現在のFacebook iOS SDKは、この場合には十分ではないアクセストークンを返しました。私はたくさん掘り下げました、ここでこの質問を見つけました:

http://www.quora.com/Do-the-OAuth2-access-tokens-in-the-new-Facebook-Graph-API-expire

しかし、それが記述したフォーマットは、私たちが取得したアクセストークンと類似していません。

私はこれらのことに少し混乱しています。

ちなみに、古いバージョンのiPhoneは古いFacebook SDKをターゲットにしてテストしました。これは、この古いSDKがセッションキーを直接提供するためですが、このSDKは、ログインに成功すると常にFacebookからのエラーページを表示するようになりました。このSDKは完全に非推奨になっているようですか?

この質問を明確にするために、これはFacebook iOS SDKから取得したアクセストークン(URLに埋め込まれています)です。

fb193174047373858://authorize/#access_token=IwDbeiWINrotP3JOd1EGoEY7OmOBd2DyV8lh73mutCM.eyJpdiI6IkdKd3BvWlItcWlWRzIwTGYtUkRUVWcifQ.J6qNtSibMmm0yFe2QNHG46jnIUXef3dV-NnbYqXkfrFABjPrgMPQRUeKHJ3GxX1T3nlU7-4P8FUT6dlfwSwHfNJrheTUZIXdd3AlsSRUiUer5xEdFA9IsGEMn6GyHheH9DSr76IeZcBjl-_s4ub3kg&expires_in=0
4

2 に答える 2

3

FBAppAuthまたはSafariAuthのaccess_tokenフラグメントをsession_idに変換する式がまだありません。ただし、次の説明は、説明されている式でaccess_tokenを取得するのに役立ちます。この式は、簡単にフラグメント化してsession_idを取得できます。お役に立てれば。

iOS SDKバージョン2では、ログインはFacebookクラスの次のAPIによって処理されます。

- (void)authorize:(NSArray *)permissions delegate:(id<FBSessionDelegate>)delegate;


同じAPIの実装で、FBAppAuthとSafariAuthをオフにすると、ログインダイアログボックスが呼び出され、返されるaccess_tokenの形式はAPP_ID|になります。SESSION_KEY | ダイジェスト

- (void)authorize:(NSArray *)permissions delegate:(id<FBSessionDelegate>)delegate 
{
  [_permissions release];
  _permissions = [permissions retain];
  _sessionDelegate = delegate;
    //[self authorizeWithFBAppAuth:YES safariAuth:YES];
  [self authorizeWithFBAppAuth:NO safariAuth:NO]; // Turned off FBApp and Safari auth
}


返されたaccess_tokenは、Facebookクラスの次のコールバックメソッドでキャプチャできます(トークンを印刷するにはNSLogを配置してください):

- (void)fbDialogLogin:(NSString *)token expirationDate:(NSDate *)expirationDate 


于 2011-03-01T16:08:39.547 に答える
1

現在のFBアクセストークンの形式は次のとおりです(「|」は区切り文字です):|| たとえば、次のようなaccess_tokenの場合:146012674543599 | de29194522ad43g16ec2ca9b-612345672 | kK5HvfSTbJx-x21rMsTyttifij0セッションキーは:de29194522ad43g16ec2ca9b-612345672

乾杯

于 2011-03-01T07:32:46.820 に答える