在Swift 3中获取Facebook页面帖子

大家好…。 大家都知道Facebook SDK登录并使用Facebook SDK获取用户详细信息,例如用户名,电子邮件和电话号码等。

在本教程中,我将向您介绍如何使用Facebook Graph API从公共Facebook页面获取公共帖子,以及如何进一步获取帖子附件。

请记住,您必须先注册您的应用程序Facebook Developer Account。

https://developers.facebook.com/

在此,我将使用Facebook SDK。 和SwiftyJSON将json映射到模型类中。

众所周知,在开始编码之前,请打开xcode并创建一个单视图应用程序。 现在,您必须在该项目中安装两个库。 我将使用可可豆荚来安装这些库。

在项目中轻松创建一个pod文件,然后在podfile中写入以下行

 吊舱'FBSDKCoreKit' 
pod'FBSDKLoginKit'
pod'SwiftyJSON','〜> 3.1'

FBSDK登录套件还需要我们需要访问令牌才能获取Facebook页面数据,因此首先需要通过以下代码使用Facebook登录。 在开始编码之前,我们需要在View Controller上创建一个UIButton,然后在UIView Controller类内然后在IBAction内创建该按钮的IBAction。编写以下代码以使用Facebook SDK登录。

我正在使用上面的Facebook Page的ID来获取公开帖子。 您可以关注此页面。 它归我所有。 宣传也很重要。 毕竟,我必须在我的Facebook帖子上增加喜欢的次数。

https://www.facebook.com/pg/SandsHellCreations/

现在回到工作,毕竟我们必须完成任务。 您可以获得我们必须解析的以下类型的json结果。

为了解析数据,我将创建SwiftyJSON helper文件,我们将在解析和创建模型类中使用该文件。 因此,在名为SwiftyJSON Helper的项目中创建一个新的.swift扩展文件,并在其中写入以下代码。 这仅包含用于重整代码的操作符重载。

现在创建一个名为FBModel.swift的swift文件,并将以下代码粘贴到其中,以将数据从json映射到Model类。

现在创建一个以下变量,以将帖子数据存储在View Controller类中。

  var data:FBModel? 

我们已在getPosts()函数中将json解析数据分配给此变量。 另一件事是,我们需要在分页对象中检查json是否存在下一个命名值,那么我们必须在此图形API中实现分页。 因为在一个API Hit中,我们仅获得25个公开帖子的数据。 这种情况我们已经在getPosts()函数中处理过。 如果帖子多于25条,则要获取所有帖子,我们需要应用分页。 如果发布数超过25,则json中的分页对象内仅存在下一个变量值。 然后编写以下函数来获取分页剩余的帖子数据。

在此,我们获得剩余的帖子,并将这些帖子附加到已经存储了先前帖子的数据变量中。 现在我们再次检查next var是否包含用于进一步分页的值,方法是如果存在则让其展开,然后再次调用getNext()函数。

因此,我们从Facebook页面获取了所有帖子。 等待…等待…您是否注意到在json数据中,我们仅获得发布消息,创建日期和发布ID,但没有获得发布图像。 那么如何获得这些,有什么想法吗???

我要告诉你,还有另一个Facebook图形API,通过它我们可以获取FB Post附件,例如图像和视频url等。只需编写一个功能,您就可以准备高飞了。 您必须传递Facebook帖子ID和Facebook访问令牌才能获取帖子附件。

现在,您获得了与FBPost相关的所有媒体附件,这些附件的ID是您在上述函数中传递的。 json的输出如下。

我认为您可以自己将json上面的内容解析为Model类。

最好的解析模型类。 快乐编码🙂

捕捉我上面教程的Github回购:https://github.com/SandeepSpider811/FacebookPosts

Interesting Posts