3

FacebookSSOとOpenGraphを始めたばかりです。iOSアプリでSSOを使用していますが、OpenGraphアクションを公開する方法を確認し始めています。

新しいアクションタイプを設定しました。送信する必要があります。そうすると、次のエラーが発生します。

このアクションタイプを使用して、少なくとも1つのアクションをタイムラインに公開する必要があります。ドキュメントを確認します。

わかりました。役立つドキュメントのリンクをクリックすると、これを実行したいことがわかります。

https://graph.facebook.com/me/recipebox:cook?recipe=http://www.example.com/pumpkinpie.html&access_token=YOUR_ACCESS_TOKEN

だから私はそれをこれに翻訳します:

https://graph.facebook.com/me/fotoferret:hug?ferret=http://www.example.com/pumpkinpie.html&access_token=MY_ACCESS_TOKEN

fotoferretは私の名前空間であり、抱擁は私の行動です

ここで、MY_ACCESS_TOKENは、以下によって返される値です。

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=MY_APP_ID&client_secret=MY_APP_SECRET

翻訳したURLを貼り付けると、次のエラーが返されます。

{
   "error": {
      "message": "An active access token must be used to query information about the current user.",
      "type": "OAuthException",
      "code": 2500
   }
}

この点で私は混乱しています。タイムラインにアクションを公開しようとしましたが、提供したアクティブアクセストークンが必要であると表示されます。では、どうすればアクションを公開できますか?

4

2 に答える 2

6

アプリアクセストークンを使用する場合は、ではなくユーザーのIDを使用してください/me。ユーザーから直接ではなく、アプリに代わってアクションを実行しています。

ユーザーアクセストークン

https://graph.facebook.com/me/fotoferret:hug?ferret=http://www.example.com/pumpkinpie.html&access_token=MY_ACCESS_TOKEN

アプリアクセストークン

https://graph.facebook.com/ID/fotoferret:hug?ferret=http://www.example.com/pumpkinpie.html&access_token=MY_ACCESS_TOKEN

グラフエクスプローラーを使用するときは、オプションをに切り替えて、POST取得しないようにしてGETください。GETデフォルトで設定されているため、アクションを作成せずにアクションを返します。

またはcURLを使用する

curl -F 'access_token=MY_ACCESS_TOKEN' \
-F 'ferret=http://www.example.com/pumpkinpie.html' \
https://graph.facebook.com/ID/fotoferret:hug

「公開するためにアプリトークンが必要」を有効にして取得した場合

{"error":{"message":"(#15) This method must be called with an app access_token.","type":"OAuthException","code":15}}

それはあなたが使用していることを意味します

curl -F 'access_token=MY_ACCESS_USER_TOKEN' \
-F 'ferret=http://www.example.com/pumpkinpie.html' \
https://graph.facebook.com/me/fotoferret:hug

を使用しMY_APP_TOKENます。あなたが取得する場合、

{"error":{"message":"An active access token must be used to query information about the current user.","type":"OAuthException","code":2500}}

それはあなたが使用していることを意味します

curl -F 'access_token=MY_APP_TOKEN' \
-F 'ferret=http://www.example.com/pumpkinpie.html' \
https://graph.facebook.com/me/fotoferret:hug

数値IDを使用する必要があります

curl -F 'access_token=MY_APP_TOKEN' \
-F 'ferret=http://www.example.com/pumpkinpie.html' \
https://graph.facebook.com/ID/fotoferret:hug

あなたが取得する場合

{"error":{"message":"(#200) Requires extended permission: publish_actions","type":"OAuthException","code":200}}

ユーザーは、私/権限のセットにpublish_actionsアクションを持っていません。そうでない"publish_actions": 1かのように存在する必要があります。[アクセストークンを取得]を選択し、を選択して権限を付与します(アプリのコードスコープに合わせて変更する必要があります。良い)

于 2012-05-16T18:44:17.243 に答える
1

グラフAPIエクスプローラーを使用してアプリのアクセストークンを生成し、それを使用すると、より簡単になる場合があります。これにより、アクセストークンのフェッチによるエラーの可能性が少なくとも排除されます。

于 2012-05-16T18:30:30.587 に答える