我必须这样做。 绝对是每个问题我都会查询有关此问题的问题,但他们的答案都没有帮我解决。
我想在我的Facebook页面上发帖。
问题在于:
错误: “(#100)您无法在已发布的帖子”
上指定预定的发布时间代码:
FB.api(
"/100177680105780/feed",
"POST",
{
"message": "This is a test message",
"scheduled_publish_time": Math.round(new Date().getTime() / 1000) + 120
},
function (response) {
console.log(response);
if (response && !response.error) {
/* handle the result */
}
});
我不知道为什么这会给我这个错误。即使我在帖子的内容周围添加“对象”:{},它也不起作用。我尝试更改UNIX时间戳,我尝试更改消息,我尝试设置“已发布”:false ,但没有运气。
任何指导都会很棒。
答案 0 :(得分:8)
https://developers.facebook.com/docs/graph-api/common-scenarios#scheduledposts处的文档说的是scheduled_publish_time
应该是一个介于10分钟到6分钟之间的UNIX时间戳 自发布之日起的几个月
由于你只增加了120秒,我想这可能是它无法正常工作的原因。尝试添加至少600秒并再次测试。
https://developers.facebook.com/docs/graph-api/reference/page/feed/#pubfields也这样说。
正如@Sahil所提到的,你还需要使用一个页面访问令牌,需要按照他的描述手动设置。
答案 1 :(得分:8)
"published": false
以发布预定的帖子。如果在设置此参数后仔细查看错误,则会显示:
(#200)未发布的帖子必须作为页面本身发布到页面。
预定的帖子只能使用页面访问令牌发布 - 逻辑性足够,因为那些有权管理页面的人可以安排帖子。
此外,使用您的代码(您使用的是普通用户访问令牌),帖子将作为您自己而不是代表页面发布。这些帖子在侧栏上可见而不是在主墙上 - 这不是你想要的吗? :)
因此,请使用页面访问令牌。要获取页面访问令牌,请首先获得manage_pages
权限的新用户令牌并拨打电话
\GET /{page-id}?fields=access_token
使用此令牌并拨打电话安排帖子 -
FB.api(
"/{page-id}/feed",
"POST",
{
"message": "This is a test message",
"scheduled_publish_time": Math.round(new Date().getTime() / 1000) + 120,
"published": false,
"access_token": "{page-access-token}"
},
function (response) {
console.log(response);
if (response && !response.error) {
/* handle the result */
}
});
我不确定您的应用程序究竟是做什么的,但是如果获得一个永不过期的页面访问令牌可以帮助您,您可以在此处看到我的answer。
希望有所帮助!
修改强>
正如@Tobi所提到的,还要确保UNIX时间戳在发布之后的10分钟到6个月之间。由于您使用2分钟,这可能也会产生问题。