标签: facebook-graph-api

Facebook SDK返回错误:跨站点请求伪造验证失败.来自URL和会话的"状态"参数不匹配

我正在尝试使用像这样的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)

php wordpress facebook facebook-graph-api

57
推荐指数
7
解决办法
9万
查看次数

让Facebook喜欢/分享给定URL的数量

我正在使用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 facebook-fql facebook-graph-api

56
推荐指数
6
解决办法
12万
查看次数

从Facebook获取长实时访问令牌

据我了解,最近Facebook已经决定删除​​该offline_access权限,并引入了一个名为长期访问令牌的概念,最长可达60天.有谁知道如何使用Facebook JavaScript SDK获取此访问令牌?

facebook-graph-api

56
推荐指数
2
解决办法
8万
查看次数

Facebook Graph API GET请求 - 应包含"fields"参数(Swift,Facebook SDK v4.5.1)

我的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)

xcode facebook facebook-graph-api ios swift

56
推荐指数
5
解决办法
4万
查看次数

Facebook OAuth2访问令牌到期后刷新的正确方法是什么?

据我了解,这是使用OAuth2 API的新Facebook iframe画布应用程序的基本过程:

  1. 重定向到(或具有用户点击链接)应用程序的授权URL
  2. 用户授权并重定向到您的回调URL
  3. Callback使用"code"参数来获取访问令牌
  4. 访问令牌与Graph API一起使用来提取或推送信息

问题是访问令牌过期相对较快并且需要"刷新",所以我的问题是1)除了尝试使用它并简单地得到错误之外,你如何检测到令牌已经过期?2)获得新令牌的最佳做法是什么?

目前,我只是检测到尝试使用其访问令牌获取用户信息时出错,然后再次重定向到授权URL - 因为他们已经授权应用程序空白页闪烁并且他们被重定向回我的应用程序回调我得到一个新鲜的令牌.它太笨重了我无法相信这是正确的方法.

facebook facebook-graph-api oauth-2.0

53
推荐指数
2
解决办法
4万
查看次数

Facebook Open Graph Images的最小宽度和高度是多少?

我曾经读过,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的图像.

谢谢你的帮助!

facebook facebook-graph-api facebook-opengraph

50
推荐指数
6
解决办法
8万
查看次数

Facebook电子邮件字段返回null(即使设置并接受"电子邮件"权限)

对于我们应用程序中的某些用户,即使用户已授予对应用程序的电子邮件访问权限,电子邮件字段也会返回NULL.通过Debugger工具检查范围参数和用户令牌的有效性时,一切正常.许可电子邮件已被接受.但是当我们向Graph API询问具有有效用户令牌的用户的电子邮件时,它根本不会出现.

有没有办法阻止应用程序收到他的电子邮件,即使他授予了电子邮件权限?

谢谢

facebook facebook-graph-api

50
推荐指数
4
解决办法
4万
查看次数

如何通过Facebook 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,并且稍后会针对玩游戏的朋友列表进行检查,但现在由于以下几个原因这是不可能的:

  • 邀请令牌不存在于朋友边缘
    • 无论如何它都是动态的
  • invitable_friends边缘不存在普通用户ID.
  • 我可以使用用户名作为键,但这不是唯一的.

实际问题: 有没有人设计过一种方法来确定已经被邀请的用户,哪些已经接受了邀请?

facebook facebook-graph-api ios

50
推荐指数
1
解决办法
2893
查看次数

重定向到身份验证对话框 - "发生错误.请稍后再试"

为什么总是发生在我身上?

这在我的应用程序验证用户用户登录并将用户重定向到身份验证页面后发生:

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类完成的.

php facebook facebook-graph-api

49
推荐指数
7
解决办法
13万
查看次数

获取全尺寸的个人资料图片

无论如何使用任何facebook api获取全尺寸的个人资料图片?

http://graph.facebook.com/ {ID}/picture?type = large是小的方法.

谢谢 :)

facebook facebook-graph-api

49
推荐指数
3
解决办法
11万
查看次数