51

appsecret_proof: https://developers.facebook.com/docs/reference/api/securing-graph-api/に関する Facebook の最新の変更以降、Advanced から機能を有効化/無効化した後でもパフォーマンス レポートをダウンロードできません。アプリで設定するか、ドキュメントに記載されているコードを適用します。

このエラーが常に発生しています。

{"error":{"message":"API 引数で指定された appsecret_proof が無効です","type":"GraphMethodException","code":100}}

秘密のバグをオープンしましたが、誰も答えを返してくれません。

これ以上何を試すことができるか本当にわかりませんか?

4

15 に答える 15

56

エラーは (私の経験に基づいて) ほぼ確実に正しいです。これは、API 呼び出しで無効な appsecret_proof を証明していることを意味します

標準の PHP SDK を変更せずに使用していると仮定すると、最も可能性の高い理由は次のとおりです。

  • SDK コードで間違ったアプリ ID を構成した
  • SDK コードで間違ったアプリ シークレットを構成した
  • 間違った / 別のアプリからのアクセス トークンを使用しようとしています
于 2013-09-09T02:41:00.673 に答える
10

facebook PHP SDK の最新バージョンにバグはありません。ドキュメントに従って appsecret_proof を作成する必要があります。

$appsecret_proof= hash_hmac('sha256', $access_token, $app_secret);

次に、それをパラメーターとして API 呼び出しに渡します。

こちらのドキュメントを参照してください: https://developers.facebook.com/docs/graph-api/securing-requests/

これを行うと、すべてがうまくいき、base_facebook.phpをハックする必要はありませんでした

于 2014-01-29T10:46:50.320 に答える
9

Facebook SDK にバグがあります。自分のコードをデバッグするためにあらゆることを 20 時間試した後 (問題はありませんでした!)、base_facebook.php でこれをコメントアウトしました。

/* Commented out by SJ 
    if (isset($params['access_token'])) {
      $params['appsecret_proof'] = $this->getAppSecretProof($params['access_token']);
    }
*/

そして、すべての問題が解消されました!

于 2013-09-25T21:14:24.733 に答える
3

これは、トークンが正しいためのエラーです。これは、Facebook 構成用の Web アプリとモバイル アプリの構成に別のアカウントを使用していることが原因である可能性があります。両方のアカウントが同じである必要があります。

アプリ ID は、モバイル アプリと Web アプリで同じである必要があります。

于 2017-07-06T09:01:30.490 に答える
1

このエラーは、間違ったアクセス トークンを設定した結果です。たとえば、ユーザー (管理者) のアクセス トークンを使用してページ アルバムに投稿します。適切なアクセストークンを設定することで、ほとんどの場合このエラーを解決しました

于 2013-11-23T08:36:16.633 に答える
1

私にとっては、それを機能させる3つの修正でした

  1. 開発者向け Facebook のアプリの高度な構成で、秘密のアプリと API へのアクセスを有効にします。理論的には必要ありませんが、これらの 2 つのオプションがオフの場合でも、常に appsecret_proof が必要であることが示されました。

アプリの設定詳細オプション

  1. appsecret_proof を作成するとき、それを作成するために使用される access_token は、リクエストで送信するのと同じ access_token である必要があり、そのユーザー access_token です。私のエラーは、アプリ access_token を使用していたことです。ユーザー access_token を使用します。

  2. パラメーター appsecret_proof を app_secret_proof としてではなく、appsecret_proof として送信します。些細なことですが、私に起こりました。

追加: Python の場合、次のように appsecret_proof を作成できます。

import hmac
import hashlib

facebook_app_secret = '<your_app_secret>'
facebook_access_token = '<your_user_access_token>'
appsecret_proof = hmac.new(facebook_app_secret.encode('utf-8'),
                           msg=facebook_access_token.encode('utf-8'),
                           digestmod=hashlib.sha256).hexdigest()
print(appsecret_proof)

Python で appsecret_proof を使用した facebook グラフ API 呼び出しから取得

于 2020-12-30T23:16:04.763 に答える
0

設定が正しいことを確認してくださいfbappid + fbappsecret

このエラーは、それらが正しく設定されていない場合に発生します

2 つのアプリがあるように、1 つは開発用、もう 1 つは本番用です

あなたはコードを台無しにして、それらの2つを再確認してください

于 2015-06-24T12:26:00.510 に答える
0

同じ問題を抱えている人のために。

Facebook でClient OAuth Loginを「yes」に設定する場合、適切な有効な OAuth リダイレクト URIを指定する必要があります。そうしないと、facebook はまったく同じエラーをスローします。

于 2015-10-28T09:57:22.623 に答える