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つのユーザー権限ポップアップを表示することは、理想的ではないユーザーエクスペリエンスです。

答えて

17

初めての場合は、読み取り権限を要求する必要があります。ユーザーは最初に任意の種類のパブリッシュ/書き込み権限で認証することはできません。それ以降は、アプリで意味があるところで、publish_streamの許可を求めてください。間違いなく、最初のアクセス許可を行い、すぐにpublish_streamアクセス許可を求めます。

https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-3.0-to-3.1/の「&の書き込み権限を別に書き込む」のセクションを参照してください。これはiOS用Facebook SDKにも当てはまりますが、組み込みフレームワークでは同じ要件の拡張です。

+0

@ "user_about_me"はまだこのエラーがあります。どうしましたか ?? – Stas

+0

このエラーが発生した場合にのみuser_about_meを要求していますか?また、使用しているコードを提供できれば助かります。 –

+0

問題は既に修正されています。 Facebookに遅れがありました – Stas

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. 

失敗すると、同じエラーにつながります。

4

最新のSDK(v3.5)では、permissions配列に@ "basic_info"も渡す必要があります。以前は暗黙のうちでしたが、もはやそれはありません。そうでない場合は、メソッドのドキュメントからのメッセージ

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

「アプリは、インストール時に基本的な読み取り許可を求める必要があり、」買ってあげる:私が求めている

readPermissions - An array of strings representing the read permissions to request during the authentication flow. The basic_info permission must be explicitly requested at first login, and is no longer inferred, (subject to an active migration.) It is not allowed to pass publish permissions to this method.

関連する問題