0

Facebookに情報を投稿する必要があるアプリを開発しています。電話すると

[[FBSession activeSession] openWithCompletionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
            [self publishFacebookStory];
        }];

また

[FBSession openActiveSessionWithPublishPermissions:publishPermissions defaultAudience:FBSessionDefaultAudienceEveryone allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
        if (!error) {
            [self publishFacebookStory];
        }
    }];

アプリがサファリに切り替わり、アプリが既に承認されているというメッセージが表示されます。[OK] を押すとアプリに戻りますが、完了ハンドラーが呼び出されることはなく、この時点ではまだ有効なアクセス トークンがありません。

何か案は?どんな助けでも大歓迎です。

ありがとう。

4

2 に答える 2

1

問題は、アプリ デリゲートによるapplicationDidBecomeActive. Facebook Publish to Feedを実行すると、 Facebook ログインに戻り、 への適切な変更が表示されapplicationDidBecomeActiveます。

要するに、セッションの開始と Facebook フィードでの公開を分離する必要があります (ユーザーにフィードへの投稿オプションを提示する前にセッションを開くか、ユーザーが投稿する前に何を投稿したかったかを追跡することによって)。承認が開始され、それを使用して情報が公開されますapplicationDidBecomeActive)。

于 2012-11-10T19:56:13.247 に答える
0

appdelegate で URL を処理していますか?

-(BOOL) application:(UIApplication*)application handleOpenURL:(NSURL*)URL {
    NSString *url = URL.absoluteString;

    if ([url hasPrefix:@"YOUR_FB_URL_PREFIX"]) {
        [FBSession.activeSession handleOpenURL:URL];
    }
    .......
}
于 2012-11-10T20:06:55.217 に答える