0

我正在尝试向 Facebook 发布一个新的开放图形操作,但我似乎无法获得正确的 access_token。我已经尝试过应用程序和用户令牌。每次错误告诉我使用另一个。

我实际上使用的是 django_facebook,但对于这个示例,我将只使用原始 http。(顺便说一句,这些应用程序 ID/秘密都是伪造的,无需编辑。)

对于这个例子,我有一个正常工作的开放图形对象,称为“promotion”,我在上面运行了调试器,一切都很好。它适用于这样的网站:http: //mysite.com/promotion/66306/ 然后我有一个新的开放图形操作类型(例如),称为 myaction,我已在 Facebook 注册。

这是我尝试过的...

第 1 步:获取应用访问令牌

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

返回这个:

access_token=1111111111|someapptoken

第 2 步:获取用户令牌

通过去这里:https://developers.facebook.com/tools/explorer/ 选择我的应用程序,获取访问令牌,并获得权限publish_actions

Access Token:someLongUserToken

第 3 步:尝试使用用户令牌

curl -X POST -F 'promotion=http://mysite.com/promotion/66306/' -F 'access_token=someLongUserToken' https://graph.facebook.com/me/myapp:myaction
{"error":{"message":"(#15) This method must be called with an app access_token.","type":"OAuthException","code":15}}

第 4 步:尝试使用应用令牌

curl -X POST -F 'promotion=http://mysite.com/promotion/66306/' -F 'access_token=1111111111|someapptoken' https://graph.facebook.com/me/myapp:myaction
{"error":{"message":"An active access token must be used to query information about the current user.","type":"OAuthException","code":2500}}

现在一个很大的线索可能是我的操作类型还没有得到“批准”,但是我是应用程序的管理员,所以它应该可以工作,不是吗?

Approval Status:
Unsubmitted
This Action Type must be submitted for review in order for it to be available to all users. This Action Type is available to admins and developers of the app.

我错过了什么?

谢谢!-杰夫

4

1 回答 1

2

检查操作的设置 - 您可以启用一个选项,该选项要求只能使用应用访问令牌进行发布 - 如果您启用了该选项,则 #15 消息是正确的。

您也不能将应用程序访问令牌与/me快捷方式一起使用,因为“我”是指您正在使用其访问令牌的当前登录用户 - 如果您使用的是应用程序访问权限,则需要指定用户 ID在路径中而不是使用/me/

于 2012-11-02T20:20:49.890 回答