1

我正在尝试从实时视频中获取评论流。目前我正在尝试以此为指导:

https://developers.facebook.com/.../endpoints/live-comments

问题是即使我不使用 JavaScript 并且我只是使用 cURL 发送请求并将视频 ID 替换为实时视频的 ID 并放入我的用户访问令牌或者我也尝试了我刚刚的页面访问令牌取回 400 错误请求。我使用的是上面链接中完全相同的示例,只是替换了所需的变量。

我的请求网址是这样的:

https://streaming-graph.facebook.com/{liveID}/live_comments?access_token={accessToken}&comment_rate=one_per_two_seconds&fields=from{name,id},message`

除了我删除 {} 并分别用 ID 和访问令牌替换它们。在文档的底部,它说 400 错误意味着我应该检查 URL 和参数是否正确。你觉得上面的网址有什么问题吗?我已经通过 cURL、Postman 直接发送了请求,还使用了文档中的 EventSource,每次都收到 400 Bad Request。

var source = new EventSource(
        `https://streaming-graph.facebook.com/{liveID}/live_comments?access_token={accessToken}&comment_rate=one_per_two_seconds&fields=from{name,id},message`)

    source.onmessage = function (event) {
        console.log(event)
    }

    source.onerror = function (error) {
        console.log(error)
    }

    source.onopen = function (event) {
        console.log(event)
    }

上面示例中唯一触发的是source.onerror400 Bad Request。

我知道我的 ID 和 Token 是正确的,因为如果我从这里(https://developers.facebook.com/docs/graph-api/reference/live-video/comments/)使用图形 API 来提取它有效的评论,但是该方法不会给我一连串评论,因为它们只会在运行查询时给出任何评论。

4

1 回答 1

1

好吧,经过更多的测试,我想通了。原来我为此提供了“Post ID”,而不是“Live ID”,这是一个不同的图形查询。

之前我使用的是:

https://graph.facebook.com/v11.0/{Page_Name}/posts

并从包含实时视频的帖子中获取 ID。我真正需要做的是:

https://graph.facebook.com/v11.0/{Page_Name}/live_videos

这将返回正确的 ID 以馈入上述 live_comments 端点。

于 2021-08-07T04:38:59.530 回答