如何获得带有图片和视频以及文本的facebook订阅源



我想在ios应用程序中获取记录的用户提要,我尝试过使用图形api,图形api会返回数据,这很好。但当我在脸书用户页面上交叉检查数据到实际的脸书订阅源时,发现了一些问题:

  1. 如果帖子只有文本,而不是消息键上的文本,以及帖子id
  2. 如果帖子中的文字带有图像/视频,则信息键上仅显示文字
  3. 如果帖子只有图片/视频,那么消息键就不会来了

我知道消息键只用于描述/文本,但用于图像?有没有任何方法可以获得与facebook上出现的内容相同的完整内容。

我尝试了以下代码:

登录

FBSDKLoginManager().logOut()
FBSDKLoginManager().logIn(withReadPermissions: ["email", "public_profile", "user_posts"], from: self) { (result, error) in
if error != nil {
print("failed to start graph request: (String(describing: error))")
return
}
// self.getPosts()//old
self.getFBPost()
}

对于getFBPost

func getFBPost() {
FBSDKGraphRequest(graphPath: "/me/feed", parameters: nil)?.start(completionHandler: { (fbConnectionErr, result, error) in
// print(fbConnectionErr)
print(result)
//print(error)
})
}

即将到来的响应如下:

{
"data": [
{
"message": "https://medium.com/frame-io-engineering/huge-images-small-phone-15414b30d39e",
"created_time": "2018-12-03T13:59:01+0000",
"id": "68288174406_653966194"
},
{
"created_time": "2018-12-01T13:43:02+0000",
"id": "68288174406_6528518443724"
},
{
"message": "I love my Mom",
"created_time": "2018-11-30T13:27:38+0000",
"id": "68288174406_652289420323"
}
}

正如你所看到的,第二篇文章只有id和创建时间,而我们在脸书页面上查看了这篇文章的图片,第三篇文章有视频,但只有来自图形api 的文本

请指导我做错了什么?或者,我应该怎么做才能像在脸书上一样以json格式获取整个提要数据?

您在API调用中没有要求任何字段,因此您只得到默认字段。它被称为"声明字段"(/me?fields=message,created_time,...),并附带v2.4:

  • https://developers.facebook.com/docs/graph-api/changelog/archive#v2_4_new_features
  • https://developers.facebook.com/docs/graph-api/using-graph-api/#reading

我已经阅读了@luschn共享的give文档。得到了解决方案,我忘记了@luschn建议我的声明性字段,现在解决方案如下:只需要在图形api中更改

FBSDKGraphRequest(graphPath: "/me/feed", parameters: ["fields":"created_time,attachments,type,message"])?.start(completionHandler: { (fbConnectionErr, result, error) in
print(fbConnectionErr)
print(result)
print(error)
let re = result as? [String: Any]
let data = re?["data"] as! [[String: Any]]
for dict in data {
print(dict)
}
})

或者如果你有页面id,你可以使用下面的url来访问getapi。

https://graph.facebook.com/(api_version)/(page_id)?fields=feed{created_time,attachments,message}&access_token=(token_id)

最新更新