Facebook iOS SDK バージョン 3.7.1 から 3.8 にアップグレードすると、Facebook を介してアプリで認証するときに、コンソール ログに次のように表示されるようになりました。
FBSDKLog: Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0xc5a9cf0 {com.facebook.sdk:HTTPStatusCode=400, com.facebook.sdk:ParsedJSONResponseKey={
body = {
error = {
code = 100;
message = "(#100) The parameter 'custom_events' or 'custom_events_file' is required for the 'CUSTOM_APP_EVENTS' activity";
type = OAuthException;
};
};
code = 400;
headers = (
{
name = "Access-Control-Allow-Origin";
value = "*";
},
{
name = "Cache-Control";
value = "no-store";
},
{
name = Connection;
value = close;
},
{
name = "Content-Type";
value = "text/javascript; charset=UTF-8";
},
{
name = Expires;
value = "Sat, 01 Jan 2000 00:00:00 GMT";
},
{
name = Pragma;
value = "no-cache";
},
{
name = "WWW-Authenticate";
value = "OAuth \"Facebook Platform\" \"invalid_request\" \"(#100) The parameter 'custom_events' or 'custom_events_file' is required for the 'CUSTOM_APP_EVENTS' activity\"";
},
{
name = "x-fb-loadmon";
value = "0,2.76,90";
}
);
}, com.facebook.sdk:ErrorSessionKey=<FBSession: 0x12e5e9c0, state: FBSessionStateOpen, loginHandler: 0x12e58630, appID:..., urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0xd884b00>, expirationDate:..., refreshDate:..., attemptedRefreshDate:..., permissions:...>}
サンプルの Facebook iOS アプリの最新バージョンをダウンロードし、AppDelegate での Facebook SDK への呼び出しが最新であることを確認しました。認証するために、openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:
メッセージをに送信していますFBSession
。
これはFacebookのバグである可能性が非常に高いようです(私は彼らにバグを報告します)が、私が何か間違ったことをしている可能性もあります.
AppDelegate に呼び出しを追加して一時的に問題を解決しました[FBAppEvents setFlushBehavior:FBAppEventsFlushBehaviorExplicitOnly];
が、より包括的な解決策を希望します。
2014 年 3 月 24 日 編集
これは 3.8 では再現されなくなりました (3.13 では再現されませんが、私もテストしました)。Facebookがサーバー上でこれを修正したに違いないようです。