首页 文章

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

提问于
浏览
2

我正在尝试使用facebook图形api更新上一篇文章中的消息 . 我有原始的帖子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图表详细信息(我知道它已经删除了publish_actions权限),但肯定有办法通过图形api更新页面帖子 .

https://developers.facebook.com/docs/graph-api/reference/v3.2/post#updating

另外当我说我正在尝试更新消息时,基本上是帖子中写的文字(见图)

2 回答

  • 1

    我弄明白这一点,我没有在我的请求中使用完整的 postid . 当创建原始帖子时,它会发回一个帖子ID,它是 pageidpostid 的组合(中间有下划线),如下所示,第一部分是 pageid ,下面是下划线作为 postid ,我只把第二部分作为 postid

    334797943936653_2003899366299670
    

    有趣的是,即使我有一个无效的 postid ,我仍然会得到"success" .

  • 1

    文档示例说明

    POST /v3.2/post-id HTTP / 1.1主机:graph.facebook.com message =这是一条测试消息

    所以 message 是POST正文的一部分 . 但是您的代码将 message 作为查询字符串的一部分发送 . 解决方案:将 messageaccess_token 移动到正文 .

    <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 自动完成,因此请将可读/所需文本保留在 message 变量中 .

相关问题