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 用户的帖子和分享 [关闭]