3

私は Facebook SDK 3.1 チュートリアルに従おうとしています: Scrumptious と FB をアプリに統合します。

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {

NSArray *permissions = @[@"email"];

return [FBSession openActiveSessionWithReadPermissions:permissions
                                          allowLoginUI:allowLoginUI
                                     completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
                                         [self sessionStateChanged:session state:state error:error];
                                     }];

追加のアクセス許可を追加したいのですが、次の画像のように認証の基本情報のみが表示されます。

スクリーンショット

非推奨の方法も使用しましたが、同じ結果が得られました。

[FBSession openActiveSessionWithPermissions:permissions allowLoginUI:allowLoginUI completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
    [self sessionStateChanged:session state:state error:error];
}];

ここから別の場所で使用して一時的な解決策を見つけましreauthorizeWithPublishPermissionsた。ユーザーは、ユーザーの電子メールを読むために Facebook に 2 回ログインする必要があります。

一度にできる解決策はありますか?

助けてくれてありがとう!

編集:を使用した、stackoverflow に関する別の投稿openActiveSessionWithPublishPermissionsでも、スクリーンショットと同じ結果が得られます。

4

3 に答える 3

5

Facebook FBSessionリファレンスによると、ベストプラクティスとして、セッションを開くときに読み取り権限を要求する必要があります。そして、後で必要になったときに、追加の権限を要求します。

最初のアクセス許可要求は、読み取り専用のアクセス許可のみを表す必要があります。

次に、以下のコードを試しましたが、適切な許可要件があります。

NSArray *permissions = [[NSArray alloc] initWithObjects:@"email", nil];

[FBSession openActiveSessionWithReadPermissions:permissions
                                   allowLoginUI:YES
                              completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
 [self sessionStateChanged:session state:state error:error];}];
 [permissions release];

お役に立てれば。

于 2012-10-24T09:54:48.307 に答える
2

Facebookアプリの権限設定でFacebook.comの権限をチェックし、それらが一致することを確認します。iOSコードで権限を設定できると言われていると思いますが、FBアプリの設定でも権限を一致させることをお勧めします。

于 2012-10-18T13:19:22.980 に答える
2

http://developers.facebook.com/docs/reference/login/#permissions

これはそれらの使用方法の例です

NSArray *permissions = [[NSArray alloc] initWithObjects:@"publish_stream", @"email", nil];
[facebook authorize:permissions];
[permissions release];
于 2012-10-18T13:41:43.247 に答える