1

私の目標は、アプリに友達を招待するアプリリクエスト ボタンを作成することです。

問題は、ログインするように求められることです。これは通常は問題になりませんが、このコンテキストでは、ユーザーはアプリ内で別の機能を実行するために、Facebook にログイン情報を既に入力しています。その機能は、現在利用できない他の誰かによって書かれました。

結局、ユーザーは 2 回ログインする必要があります。相手の機能を使うのに1回、アプリリクエストダイアログを使うのに1回。ユーザーに2回ログインするように求めないように、資格情報/承認/セッションを何らかの方法で共有する必要があります。

試行を事前承認するために、標準のアプリ要求ダイアログ コードで渡されるパラメーターが表示されません。Facebook オブジェクトで何かできることがあると思います。また、私は Objective C に非常に慣れていないため、デリゲートに関する私の理解は非常に弱いです。私はそれを見てきましたが、facebookオブジェクトがデリゲートとしてどのような機能を必要とするのかわかりません。私の理解では、facebook はデリゲートにコールバックでき、本質的に非同期の ack または req などを提供できます。しかし、どのような種類のデリゲートが期待されているかを知るにはどうすればよいでしょうか? どのパラメータが渡されますか? 等..

とにかく、これが私のアプリ リクエストの非常に基本的なコード ブロックです。ログイン ボックスが 2 回ポップアップしないようにするには、ここからどこに行けばよいかわかりません。

Facebook *facebook = [[Facebook alloc] initWithAppId:<#(NSString *)#> andDelegate:<#(id<FBSessionDelegate>)#>]; 
// I realize I have to fill in my own AppID, which I have but I'm not entirely sure about the delegate

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"Come check out my app.",  @"message",
                               nil];

[self.facebook dialog:@"apprequests" andParams:params andDelegate:nil];
4

1 に答える 1

1

他の機能によって作成されたセッションを再利用するには、インスタンスにaccessTokenおよびexpirationDateプロパティを設定する必要があります。または同様のメカニズムFacebookを使用して、これらの値を永続化できます。NSUserDefaults

自動セッション処理が大幅に改善された新しいバージョンの Facebook SDK (3.0)があることに注意してください。将来的には必須になる可能性が高いため、機会があれば切り替えてください。

于 2012-09-11T17:54:31.053 に答える