1

私は2日間で自分の問題の解決策を見つけようとしています。そして、私はあなたが私にリンクを与えることができるすべてのリソースを読んだと私が確信していることを言いたいです=)問題はです。iOS用のFacebookSDK3.1を使用しています。そして、apprequestsダイアログを作成しようとしています...コードは単純です

session =[[FBSession alloc]initWithAppID:@"XXXXXXXXXXXX" permissions:nil urlSchemeSuffix:@"xxxxxxxxxxxx" tokenCacheStrategy:nil];
    [FBSession setActiveSession:session];
      [self ShowSessionState:session.state];
      NSLog(@"Acces token data: %@",[session accessToken]);  

      [session openWithCompletionHandler:^(FBSession *psession, FBSessionState status, NSError *error) {
         // NSLog(@"I'm in");

         Facebook * facebook = [[Facebook alloc] initWithAppId:@"XXXXXXXXXXXX" urlSchemeSuffix:@"xxxxxxxxx" andDelegate:nil];

                 [facebook setAccessToken:FBSession.activeSession.accessToken];
                 [facebook setExpirationDate:FBSession.activeSession.expirationDate];

                 [facebook dialog:@"apprequests" andDelegate:nil];

           }];

そして、私が見るすべてのもの..エラーのあるフレーム-Apiエラーコード:110; APIエラーの説明:無効なユーザーID。エラーメッセージ:ユーザーCookieがありません(セッションユーザーを検証するため)。しかし、認証は成功しました...私は有効なaccessTokenを持っています..友達や自分のFBデータを取得できます。

私が言ったように、私はたくさんのリソースを読みました...そして本当に多くの人々が同じ問題を抱えています、しかし私はこの問題のための有用な解決策を見つけませんでした。助けてください。

4

1 に答える 1

0

私は解決策を見つけました、多分それは他の誰かを助けるでしょう. 実際には悪魔祓いのように見えますが機能します) 問題は: safary または Facebook アプリから facebook にログインした場合、webview は Cookie を保存しないため、webview からログインする必要があります。FBConnect パッケージでそれを行うことができます (Google で詳細を読む)。Facebook.m ファイルでは、次のような変更コードが必要です。

[self authorizeWithFBAppAuth:YES safariAuth:YES];

[self authorizeWithFBAppAuth:NO safariAuth:NO]; 

その場合、いつ使用しますか

[facebook authorize:permissions];  

ログインは常に webview で行われ、apprequests などの任意のダイアログを使用できます。 もう 1 つの問題))ログイン ダイアログが表示されない? これはもう 1 つの Facebook のバグです)) これを解決するには、呼び出し時に遅延が必要です:

[self performSelector:@selector(showFBLoginDialog) withObject:nil afterDelay:1];

- (void)showFBLoginDialog {
    NSArray *permissions = [[NSArray alloc] initWithObjects:
                            @"offline_access",
                            @"publish_actions",
                            @"read_stream",
                            @"user_photos",
                            @"email",
                            @"publish_stream",
                            @"user_likes",
                            @"user_about_me", nil];
    [facebook authorize:permissions];    
}
于 2013-02-13T10:19:00.933 に答える