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.