我正在尝试使用像这样的php sdk获取Facebook用户ID
$fb = new Facebook\Facebook([
'app_id' => '11111111111',
'app_secret' => '1111222211111112222',
'default_graph_version' => 'v2.4',
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['public_profile','email']; // Optional permissions
$loginUrl = $helper->getLoginUrl('http://MyWebSite', $permissions);
echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';
try {
$accessToken = $helper->getAccessToken();
var_dump($accessToken);
} catch (Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch (Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook …Run Code Online (Sandbox Code Playgroud) 我正在使用Facebook API获取给定URL的类似/共享计数.奇怪的是,返回结果似乎很不一致.例如,此页面返回结果:
https://api.facebook.com/method/fql.query?query=select%20total_count,like_count,comment_count,share_count,click_count%20from%20link_stat%20where%20url='http://www.groupon.com/deals/seattlehelitourscom-by-classic-helicopter-corp'&format=json
然而,这个不是:
https://api.facebook.com/method/fql.query?query=select%20total_count,like_count,comment_count,share_count,click_count%20from%20link_stat%20where%20url='http://www.livingsocial.com/deals/278194-sunset-kayaking-hot-chowder'&format=json
第二页显然有一个共享计数,当我检查页面的HTML时,用于共享的URL是我在上面的API请求中放置的URL.但是,API不响应任何数量的喜欢或分享的任何计数信息.
关于为什么API可能会响应某些URL而不是其他URL的任何线索?
据我了解,最近Facebook已经决定删除该offline_access权限,并引入了一个名为长期访问令牌的概念,最长可达60天.有谁知道如何使用Facebook JavaScript SDK获取此访问令牌?
我的iOS应用程序在注册期间使用Facebook的Graph API请求来获取用户信息,这在升级到Facebook的最新SDK之前工作正常.升级后,我收到一个运行时错误,声明:"FBSDKLog:从Graph API v2.4开始,对/ me的GET请求应该包含一个明确的"fields"参数".
这是代码:
func requestFacebook() {
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: nil)
graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in
if ((error) != nil)
{
// Process error
println("Error: \(error)")
}
else if error == nil
{
let birthday : NSString = (result.valueForKey("birthday") as? NSString)!
var currentDate = NSDate()
var birthdayFormatter = NSDateFormatter()
let userCalendar = NSCalendar.currentCalendar()
birthdayFormatter.dateFormat = "MM/DD/YYYY"
var birthdayNSDate = birthdayFormatter.dateFromString(birthday as String)
var userAge = self.calculateAge(birthdayNSDate!)
PFUser.currentUser()!["age"] = userAge
var facebookID: …Run Code Online (Sandbox Code Playgroud) 据我了解,这是使用OAuth2 API的新Facebook iframe画布应用程序的基本过程:
问题是访问令牌过期相对较快并且需要"刷新",所以我的问题是1)除了尝试使用它并简单地得到错误之外,你如何检测到令牌已经过期?2)获得新令牌的最佳做法是什么?
目前,我只是检测到尝试使用其访问令牌获取用户信息时出错,然后再次重定向到授权URL - 因为他们已经授权应用程序空白页闪烁并且他们被重定向回我的应用程序回调我得到一个新鲜的令牌.它太笨重了我无法相信这是正确的方法.
我曾经读过,Facebook开放图表中与给定网址相关联的图片必须大于50 x 50
但是,当我们运行Facebook对象调试器时 - 我们收到以下警告:
"微小og:图像:og:image引用的所有图像在两个维度上必须至少为200px.请检查给定网址中带有标记og:image的所有图像,并确保它符合最低规格."
我们的网址是http://www.famousbirthdays.com/people/charlie-chaplin.html,图片显示在对象属性下
我们是否需要将图像转换为200 x 200以上?或者我们可以保留原样吗?它目前是一个65 x 75的图像.
谢谢你的帮助!
对于我们应用程序中的某些用户,即使用户已授予对应用程序的电子邮件访问权限,电子邮件字段也会返回NULL.通过Debugger工具检查范围参数和用户令牌的有效性时,一切正常.许可电子邮件已被接受.但是当我们向Graph API询问具有有效用户令牌的用户的电子邮件时,它根本不会出现.
有没有办法阻止应用程序收到他的电子邮件,即使他授予了电子邮件权限?
谢谢
Facebook API v2.0引入了invitable_friends优势.
从GET请求到此边缘的示例响应是:
{
"data": [
{
"id": "AVkgK9fLFxasdvXNbDV_gYogR6lXa9SKLnH...",
"name": "Anita Sujarit",
"picture": {
"data": {
"is_silhouette": false,
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/t1.0-1/c0.0.50.50/p50x50/1470158_10201991701127909_302023572_t.jpg"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
仔细查看该ID,这不是一个普通的Facebook用户ID.相反,它是一个邀请令牌 ; 此标记作为参数的值传递给" 请求"对话框to.
在每个朋友对象上返回的邀请令牌作为名为id的字段的值,是可变长度的唯一(每用户和每个游戏)字符串.邀请令牌可能会过期,并可能在游戏会话之间发生变化.因此,不建议缓存这些结果,或尝试将它们分配给给定的人.
该friends边缘现在只返回朋友已经使用的应用程序
我的问题是,我现在无法交叉引用我邀请的朋友和已接受的朋友.
以前,我会在向他们发送邀请时存储一个朋友ID,并且稍后会针对玩游戏的朋友列表进行检查,但现在由于以下几个原因这是不可能的:
实际问题: 有没有人设计过一种方法来确定已经被邀请的用户,哪些已经接受了邀请?
为什么总是发生在我身上?
这在我的应用程序验证用户用户登录并将用户重定向到身份验证页面后发生:
https://www.facebook.com/dialog/oauth?client_id=XXX&redirect_uri=http%3A%2F%2Fexample.com%2Fmyappname%2F&state=YYYYYY&scope=offline_access%2Cpublish_actions
但Facebook没有显示授权页面,而是显示错误页面
发生错误.请稍后再试.
在尝试验证我的用户之前,是否需要进行任何配置?
所有这些都是使用PHP-SDK类完成的.