Facebook Graph API:更新页面发布消息
我正在尝试使用facebook graph api更新上一篇文章中的消息。我有原始的post id和有效的永无止境的用户访问令牌。我收到了一条“成功”的消息,但是帖子没有更新Facebook Graph API:更新页面发布消息,facebook,facebook-graph-api,coldfusion,Facebook,Facebook Graph Api,Coldfusion,我正在尝试使用facebook graph api更新上一篇文章中的消息。我有原始的post id和有效的永无止境的用户访问令牌。我收到了一条“成功”的消息,但是帖子没有更新 <CFHTTP METHOD="POST" URL="https://graph.facebook.com/v3.2/#qPost.PostID#?message=#URLEncodedFormat(Message)#&access_token=#AccessToken#" THROWONERROR="YES
<CFHTTP METHOD="POST" URL="https://graph.facebook.com/v3.2/#qPost.PostID#?message=#URLEncodedFormat(Message)#&access_token=#AccessToken#" THROWONERROR="YES">
<cfhttpparam type="header" name="Accept-Encoding" value="*" />
<cfhttpparam type="header" name="TE" value="deflate;q=0" />
</CFHTTP>
成功信息:
我在这里不再关注facebook的图表细节(我知道上面说发布操作权限已被删除),但肯定有办法通过graph api更新页面帖子
另外,当我说我正在尝试更新消息时,基本上是帖子中写的文本(见图)
文档示例说明 POST/v3.2/POST-id HTTP/1.1
主持人:graph.facebook.com message=此+为+a+测试+消息 因此,
消息
是帖子正文的一部分。但是您的代码将消息作为查询字符串的一部分发送。解决方案:将消息
和访问令牌
移动到主体
<cfhttp method="POST" url="https://graph.facebook.com/v3.2/#qPost.PostID#" throwOnError="true">
<cfhttpparam type="header" name="Accept-Encoding" value="*" />
<cfhttpparam type="header" name="TE" value="deflate;q=0" />
<cfhttpparam type="formfield" name="message" value="#Message#" />
<cfhttpparam type="formfield" name="access_token" value="#AccessToken#" />
</cfhttp>
编码是由cfhttpparam
自动完成的,因此在消息
变量中保留可读/所需的文本。我弄明白了这一点,我在请求中没有使用完整的postid
。创建原始帖子时,它会发回一个帖子id,它是pageid
和postid
的组合(中间有一个下划线),如下所示,第一部分是pageid
,下划线后面的一部分是postid
,我只是把第二部分作为posted
:
334797943936653_2003899366299670
有趣的是,尽管我有一个无效的postid
,但我仍然会获得一个“成功”。另外,原始帖子是使用graph apitry完成的:PHP示例还传递了我添加的访问令牌,仍然返回了“成功”消息,但帖子消息仍然没有得到更新。