2

Facebookアプリケーションのテストユーザーを作成しようとしています。彼らは11月のこのブログ投稿(http://developers.facebook.com/blog/post/429)でこの機能を発表し、ここ(http://developers.facebook.com/docs/test_users/)に文書化されています。私は他の場所でこれに対する答えを見つけることができませんでした...

ドキュメントによると、「アプリケーションアクセストークンでGraph APIを使用して、特定のアプリケーションに関連付けられたテストユーザーを作成できます。」これは、「アプリケーションとしての認証」セクションにリンクし、このCURLスクリプトについて説明しています。

curl -F grant_type=client_credentials \
 -F client_id=your_app_id \
 -F client_secret=your_app_secret \
 https://graph.facebook.com/oauth/access_token

ここまでは順調ですね。これを実行すると、次のようになります。

access_token=1182...18|nTI...r5Q

そこで、このトークンをグラフAPIテストのユーザーURLにPOSTしたいと思います。

POST /1182...18/accounts/test-users?installed=true&permissions=read_stream&access_token=1182...18|nTI...r5Q  

これを行うと(Facebook PHP SDKを使用し、ブラウザーに入力するだけで)、次のようになります。

{
    "error": {
      "type": "OAuthException",
      "message": "Invalid OAuth access token."
    }
}

したがって、質問は次のとおりです。

  • このエラーメッセージが表示されるのはなぜですか?
  • 間違ったアクセストークンを使用していますか(Facebookが明示的にこれを使用するように指示しているにもかかわらず)
  • どういうわけかアクセストークンを解析する必要がありますか?

    ご協力ありがとうございました。

  • 4

    3 に答える 3

    2

    PHPSDKを使用してテストユーザーを作成できるようにするいくつかの実用的なコードを次に示します。

    于 2011-01-04T13:30:06.267 に答える
    0

    Facebookに戻すときは、アクセストークンが適切にurlencodedされていることを確認してください。

    于 2010-12-20T07:46:02.067 に答える
    0

    浮かんでいるのを見たサンプルコードからいくつかのパラメータを削除するまで、このエラーが発生していました。これは、私が最終的に機能するようになったリクエストを使用したPythonの例です。

    # Get the access token
    resp = requests.get(
        'https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id={app_id}&client_secret={app_secret}'.format(
            app_id=APP_ID, # Your app id (found in admin console)
            app_secret=APP_SECRET  # Your app secret (found in admin console)
        )
    )
    # Parse the token
    token = resp.content.split('=')[-1]
    
    # Create the user
    data = {'access_token': str(token)}
    resp = requests.post(
        'https://graph.facebook.com/{app_id}/accounts/test-users?installed=true'.format(
            app_id=APP_ID
        ),
        data=data
    )
    print resp.content
    
    于 2014-03-17T20:20:58.963 に答える