如何获取带有图像和视频以及文本的 facebook 提要?

Posted

技术标签:

【中文标题】如何获取带有图像和视频以及文本的 facebook 提要?【英文标题】:How to get facebook feed with images and videos along with text? 【发布时间】:2019-01-23 14:02:45 【问题描述】:

我想在 ios 应用程序中获取记录的用户提要,我尝试使用 graph api,graph api 返回数据,很好。 但是,当我在 facebook 用户页面上将数据交叉检查到实际的 facebook 提要时,会发现一些问题:

    如果帖子仅包含文本而不是消息键上的文本以及帖子 ID, 如果帖子中包含带有图像/视频的文本,则消息键上只有文本 如果帖子只有图像/视频而不是消息键不来。

我知道消息键仅用于描述/文本,但图像?有什么方法可以获取与 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 和创建时间,而我们在 facebook 页面上查看这个带有图像的帖子,第三个帖子有视频但只有来自图形 api 的文本

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

【问题讨论】:

【参考方案1】:

您不会在 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

【讨论】:

@luschin 您能否通过提供声明性字段的示例来指导我?如何添加这些以及在哪里添加? 我添加了另一个链接和一个小例子。您需要先阅读处理图形 api 的基础知识。 好的,我已经通过阅读您给定的链接和其他一些搜索找到了解决方案。分享我的解决方案。【参考方案2】:

我已经阅读了@luschn 分享的给定文档。并得到了解决方案,我忘记了@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 来获取 api。

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

【讨论】:

以上是关于如何获取带有图像和视频以及文本的 facebook 提要?的主要内容,如果未能解决你的问题,请参考以下文章

Ios Facebook SDK 我如何共享图像、链接、文本?

如何在 android 中使用 facebook 复制 Url 获取 facebook 视频详细信息

如何在 swift 中创建新闻提要 UI

Spotify 如何通过 API 将播放列表发布到 Facebook 墙上?

如何在 iPhone 的 Facebook 上发布图像和视频

如何在 youtube 等 Facebook 上分享我网站上的视频