向朋友发布消息';s墙使用应用程序访问令牌


Posting a message to a friend's wall using the app access token

我正试图让我的应用程序发布到朋友的墙上。我尝试使用FB.api方法,但我发现使用该方法已被禁用。

然后我尝试使用FB.ui提要对话框,但后来我发现消息参数被弃用,并被删除,因为facebook希望其用户输入文本。即使用户输入文本,消息也不会被张贴到该用户的墙上。

所以在做了更多的研究之后,我发现另一个选择是创建一个自定义的动作类型。在这样做的过程中,我发现要采取这种方法,我的应用程序需要一个应用程序访问令牌。

所以我尝试使用以下方法:

FB.api('https://graph.facebook.com/oauth/access_token','get',
{client_id:'XXXXXXX', client_secret:'XXXXXXXXXXX', grant_type:'client_credentials'},
function(response) {
});

这与文档中的内容没有任何不同:

GET https://graph.facebook.com/oauth/access_token?
        client_id=YOUR_APP_ID
       &client_secret=YOUR_APP_SECRET
       &grant_type=client_credentials

我收到的错误如下:

当我使用时,"未捕获引用错误:XXXXXXXXXXXXXXXX未定义">

Ext.data.JsonP.request({
url : 'https://graph.facebook.com/oauth/access_token',
params : {
 client_id : 'XXXXXXXXXXXXXXXXXXXX',
 client_secret : 'XXXXXXXXXXXXXXXXXXXXX',
 grant_type : 'client_credentials'
},
success : function(response, opts) {
},
failure : function(response, opts) {
}

});

{类型:"http",消息:"未知错误"}当我使用时

FB.api('https://graph.facebook.com/oauth/access_token','get',
{client_id:'XXXXXXX', client_secret:'XXXXXXXXXXX', grant_type:'client_credentials'},
function(response) {
});

现在,文档显示,当我执行以下操作时:

GET https://graph.facebook.com/oauth/access_token?
        client_id=YOUR_APP_ID
       &client_secret=YOUR_APP_SECRET
       &grant_type=client_credentials

我应该在我的响应对象中得到以下内容:

access_token=YOUR_APP_access_token

现在,从我所做的来看,我似乎遵循了文档的方向,但我的问题是,为什么我没有得到文档所说的正确输出?

请帮忙。

FB.api从graph.facebook.com端点工作,因此不需要显式添加graph.facebook.com

我现在不在电脑旁,但我觉得这个电话更像

FB.api('oauth/access_token'

虽然我不确定FB.api是否接受明文响应,但我相信它是为JSON响应设计的。

将来,请检查浏览器开发工具,了解您通过JS SDK 实际执行的HTTP GET操作

相关文章: