Facebook Graph API:更新页面发布消息

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

我正在尝试使用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">
        <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示例还传递了我添加的访问令牌,仍然返回了“成功”消息,但帖子消息仍然没有得到更新。