Facebook无需登录即可获得自定义对象的喜欢数

Posted

技术标签:

【中文标题】Facebook无需登录即可获得自定义对象的喜欢数【英文标题】:Facebook get number of likes on custom object without login 【发布时间】:2015-05-13 05:06:52 【问题描述】:

在 Facebook-ios sdks 的帮助下,我正在使用 og.likes 来点赞我的应用程序中的自定义对象。我可以喜欢对象,也可以阅读喜欢的东西。

现在我想知道图形 API 中是否有任何方法可以向未通过 Facebook 登录我们应用程序的用户显示对象的总喜欢数?即没有访问令牌

【问题讨论】:

您想要在 facebook 中获得帖子的点赞数吗? 不,我已经通过对象浏览器创建了一个自定义对象。我有对象 id,现在我只想获得该对象的点赞数 【参考方案1】:

根据 FB 开发者文档:-

https://developers.facebook.com/docs/graph-api/reference/v2.3/object/likes

提到您需要查看父对象所需的相同权限才能查看该对象的喜欢,这意味着需要具有 read_stream 权限的用户访问令牌。

注意: 但是,如果用户想要获得 Facebook 页面或个人资料或对象的点赞数,则可以通过以下方式轻松完成:-

https://graph.facebook.com/< your object id>/

然后您将收到带有 Like Count 的 json 响应:-


 "id": "12345",
 "link": "http://www.facebook.com/pages/MY iOS Page/102445859460201",
 "likes": 150,
 "type": "page"
 

代码:-

let url = NSURL(string: "http://graph.facebook.com/"+ObjectID)
let urlRequest = NSURLRequest(URL: url!)

 NSURLConnection.sendAsynchronousRequest(urlRequest, queue: NSOperationQueue.mainQueue())  (response:NSURLResponse!, data:NSData!, error:NSError!) -> Void in

        // Fetch the data
       var jsonDictionary: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary
        let likesCount = jsonDictionary["likes"] as? String 

  

【讨论】:

我给你一个参考espncricinfo.com/bangladesh-v-pakistan-2015/content/player/… 在这里我们可以看到没有任何登录的播放器的点赞数,iOS-SDK可以吗? 必须为此挖掘更多,但对于 iOS,我认为这肯定是不可能的。 谢谢,我也在某处寻找确认 使用此代码 FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphpath:@"graph.facebook.commyobject-id/" 参数:nil HTTPMethod:@"GET"];我仍然收到消息“请求此资源需要访问令牌” 您不能使用 FBSDKGraphRequest 它需要用户权限,您已经通过 NSURL 发送图形 url 请求,您将得到指定的响应。检查我的更新答案@Haris【参考方案2】:

得到 Facebook 团队的回复:

自 Graph API v2.0 起,对 API 的所有请求都需要访问令牌。 您可以通过网络服务器代理此请求并使用您的应用程序 例如访问令牌。

您也可以通过发布您的应用来从您的应用发出请求 使用应用程序访问令牌,但我强烈建议不要将此作为应用程序 令牌应保密。

请注意,SDK 不支持使用应用访问令牌 出于安全原因。所以你必须编写自己的网络代码来 获取此数据。

【讨论】:

【参考方案3】:

我从

那里得到了解决方案

How to get Likes Count when searching Facebook Graph API with search=xxx

在此链接中,它不是确切的解决方案,但我已经尝试了我的方法,不幸的是它对我有用,我对此非常满意,仍在我的应用程序中使用它。

 https://graph.facebook.com/v2.1/Object-id?fields=likes.summary(true)

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。 我已经修改了我的答案 Mr.@MayankJain 请看一下。【参考方案4】:

您将需要一个访问令牌,无需登录任何用户,您可以生成一个 APP 访问令牌来获取该信息。

jQuery.get("https://graph.facebook.com/oauth/access_token", 
       'grant_type': "client_credentials",
        'client_id': "000000000000000",
        'client_secret': "0000000000000000000000000000000000"
   , function (data) 
       // data is the app access token you will need for calling graph api
   );

这更复杂,但解决了登录用户从图表中获取公共信息的必要性。

【讨论】:

以上是关于Facebook无需登录即可获得自定义对象的喜欢数的主要内容,如果未能解决你的问题,请参考以下文章

facebook - 如果用户在未经用户许可的情况下喜欢页面

无需登录即可查看 Facebook 用户的帖子和分享 [关闭]

无需登录 FB 即可通过 Facebook 申请审核

iOS:无需离开应用授权即可连接 Facebook

无法使用 api v2.4 在 ios 中使用自定义按钮登录 facebook

自定义 Facebook 登录视图 Swift