17

iOS6 シミュレーターを使用して、Xcode 4.5GM で Facebook SDK 3.1 を実行しています。iOS 設定で FB に接続し、新しい iOS6 FBConnect UI を使用してアプリで FB 接続に成功しました。私はアクセス トークンを持っており、友達を表示したり、アプリ リクエストを送信したり、ウォールに投稿したりできます。ただし、何らかの種類の FBURLConnection を開始するたびに、これがコンソールに表示されます。

Error: HTTP status code: 400

私はFBコードに入り、このエラーが出力されたときに応答を出力しました。

{
    body =     {
        error =         {
            code = 100;
            message = "(#100) The parameter 'attribution' is required for the 'mobile_app_install' activity";
            type = OAuthException;
        };
    };
    code = 400;
}

これを解決する方法を知っている人はいますか?すべての機能が動作しているように見えますが、このスパムがコンソールに表示され続けます。

4

6 に答える 6

18

セッションが作成された直後にこれを行います。

[FBSession setActiveSession:session];
于 2012-11-09T15:04:51.677 に答える
3

私が知る限り、これは 3.1 SDK で導入されたバグです。Charles のネットワーク トラフィックを確認すると、彼らは POST しようとしていますgraph.facebook.com/[user id]/activitiesが、失敗しています。

于 2012-09-26T19:59:45.537 に答える
2

多くのトラブルシューティングを行い、Stackoverflow に関するすべての提案を確認した後、このエラー 400 (error.code = 5) の問題が解決されました。私の場合の解決策は、startWithGraphPath 呼び出しに含まれるパラメーター (別名 postParams) が、投稿されるコンテンツのタイプでサポートされているパラメーターと正確に一致していることを確認することでした。

より具体的には、@"ref" キーを使用して me/feed へのリンクを投稿していました (通常、FB Insights での追跡に使用されます)。

@"ref" キーを削除すると、startWithGraphPath が成功しました。

NSMutableDictionary *postParams = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"Test NAME field (from ios app)", @"name",
                                   @"Test caption", @"caption",
                                   @"Test description", @"description",
                                   @"http://example.com/test1.html", @"link",
                                   @"http://example.com/water.jpg", @"picture",
                                   // @"foo", @"ref",  // WRONG!
                                   nil];

[FBRequestConnection startWithGraphPath:@"me/feed"
                             parameters:postParams
                             HTTPMethod:@"POST"
                      completionHandler:^(FBRequestConnection *connection,
                                          id result,
                                          NSError *error)

私のactiveSession(および他のすべての考えられる犯人)はOKをチェックアウトしました。

于 2013-01-16T23:55:42.327 に答える
0

Facebook=>Open Graph definition パネル内の Define Action Type フィールドセットでFBErrorHTTPError何か問題が発生した場合にも、ステータス コード 400 がスローされることを発見しました。Optional Properties

私の場合、 としてマークされたプロパティなしでアクション オブジェクトを投稿していましたisRequiredisArrayまた、オプションと一般的には、送信するものと正しく一致するように注意してください。

于 2012-11-16T13:29:08.277 に答える
0

これは、ここからの私の回答と同じです: Facebook SDK 3.1 - エラー: HTTP ステータス コード: 400

しかし、それでも 400 エラーが発生する場合に役立つ可能性があります。

元の問題は、3.1 SDK がリリースされた直後に Facebook によって解決されました。

しかし、まだ問題がある人もいます。この問題がある場合は、ログイン フローを確認し、Facebook の例を見てください。まだ問題がある場合は、解決策のヒントになる可能性があります。

自分の情報にアクセスする権限がない場合、400 エラーが発生しました。奇妙なことに、accessToken と有効なログインを取得することもできます (これは、Scrumptious の例に従ってコードを構築し、セッション状態が開いているときに有効なログインを行ったためです)。

FBSessionState は 1 秒間だけ開かれ、その後 400 エラーで閉じられます。

iOS6 ネイティブ ログインでは、許可を要求すると許可アラートが表示され、電話はその選択を 24 時間記憶します。ただし、ユーザーが Facebook のホームページにログインしてからアプリケーションのアクセス許可を削除すると、アプリを再インストールするかどうかに関係なく、電話機はその設定を 24 時間記憶します。

これは、iOSの設定からアプリケーションを許可したため、数時間のデバッグ後にわかりましたが、投稿できませんでした。Facebookのプライバシーから許可を削除したため、アラートが再度表示されないため、できることは何もありませんでしたデバッグツールを介して手動で許可を与えるか、24時間待って、facebook-permissionアラートを再度受け入れることができます.

于 2012-11-16T11:16:14.040 に答える
-2

このエラーはサーバーのバグを反映しており、3.1 リリースが公開された直後に修正されました。この時点で、このリクエストによる失敗はなくなります。お役に立てれば!

于 2012-10-05T03:21:38.320 に答える