18

iOS 組み込みフレームワークを使用して接続しています。"publish_stream"許可を求めた後、FB はエラーを返します。

Error Domain=com.apple.accounts Code=7 "The Facebook server could not fulfill this access request: The app must ask for a basic read permission at install time." UserInfo=0x145ad6a0 {NSLocalizedDescription=The Facebook server could not fulfill this access request: The app must ask for a basic read permission at install time.}

ここで何が起こっているのですか?2 つのユーザー許可ポップアップを表示することは、理想的なユーザー エクスペリエンスとは言えません。

4

3 に答える 3

17

初めて、読み取り権限を要求する必要があります。どのタイプの発行/書き込み権限でも、最初はユーザーを認証できません。その後にすべきことは、アプリ内で意味のある場合は、publish_stream パーミッションを要求することです。最初のパーミッションを実行してから、すぐに publish_stream パーミッションを要求しないでください。

https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-3.0-to-3.1/のセクション「読み取りと書き込みのアクセス許可を個別に要求する」のこのメモを参照してください。これは Facebook SDK for iOS に適用されますが、組み込みフレームワークの同じ要件の拡張です。

于 2012-09-26T03:02:50.540 に答える
5

Facebookのドキュメントに追加の警告があることを付け加えたいと思います。

// if a user has *never* logged into your app, you MUST include one of
// "email", "user_location", or "user_birthday".  Other read 
// permissions can also be included here.

これを行わないと、同じエラーが発生します。

于 2012-12-11T23:23:24.827 に答える
4

最新の SDK (v3.5) では、パーミッション配列に @"basic_info" を渡す必要もあります。以前は暗黙的でしたが、現在はそうではありません。そうしないと、「アプリはインストール時に基本的な読み取り許可を要求する必要があります」というメッセージが表示されます。

  [FBSession openActiveSessionWithReadPermissions:@[@"email", @"basic_info"]
                                 allowLoginUI:YES
                            completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
                              [self sessionStateChanged:session state:state error:error];
                            }];

メソッドドキュメントから:

readPermissions - 認証フロー中に要求する読み取りアクセス許可を表す文字列の配列。basic_info アクセス許可は、最初のログイン時に明示的に要求する必要があり、推測されなくなりました (アクティブな移行の対象となります)。公開アクセス許可をこのメソッドに渡すことは許可されていません。

于 2013-06-28T14:45:05.910 に答える