当前位置:  开发笔记 > 编程语言 > 正文

使用Facebook Graph API PHP库

如何解决《使用FacebookGraphAPIPHP库》经验,为你挑选了1个好方法。

我正在使用PHP库的PHP库(http://github.com/facebook/php-sdk),但我对它是如何工作(或不工作)有点困惑.

我只想验证用户身份并获取用户ID.我真正想知道的是一旦用户登录Facebook并返回我的网站该怎么办.URL中有称为"会话"的数据.是否需要存储以便不断获取用户ID?对我来说,从样本或(缺乏)文档来看,这一点并不明显.

另外,完全删除PHP库并仅自己处理响应,将其存储在会话变量中会更容易吗?如果我这样做,获取/提取当前用户ID的最佳方法是什么?

编辑:

目前,我已经从GitHub复制了facebook.php文件和example.php文件,并且只更改了example.php中的应用程序名称和密码.它不存储cookie并且说"你没有连接".但是,当print_r($session);它工作时(但只有当url包含会话数据时).

还有其他人遇到过这样的问题吗?是否有可能在localhost上运行导致此问题?

编辑:

我将完全相同的两个文件上传到主机,它运行得很好.它存储了cookie并显示了它应该的所有信息.很可能在localhost上运行会导致问题.我已经更改了Facebook Developer应用程序的Connect选项卡下的设置,但仍然没有运气.

有人知道如何从localhost或我做错了吗?



1> Nicole..:

URL中有称为"会话"的数据.是否需要存储以便不断获取用户ID?

是的,它需要存储,但Facebook类会解析它并将其存储在cookie中.


另外,完全删除PHP库并仅自己处理响应,将其存储在会话变量中会更容易吗?

facebook.php中Facebook提供的类不需要使用API​​,但为您提供了一些便利,例如将常用URL放在一起,解析会话数据(发送到URL然后存储在cookie中),转换错误消息(带有"错误"键的JSON对象)到PHP异常等.

所以,简而言之,不,切割PHP库并不容易,因为你最终写的基本相同.

从示例中可以看出,他们$uid通过调用获取User ID()getUser:

if ($session) {
  try {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
  }
}

$ uid只是一个整数,$me是当前用户的数据(听起来你不需要).可以通过调用以下方法检索相同的数据:

$me = $facebook->api('/' . $uid); //Generates https://graph.facebook.com/[uid]

我现在对这个例子的问题是,Facebook类(makeRequest方法)中的curl函数由于某种原因返回NO内容.所以,$me最终没有任何结果,这使得这个例子仍然说"你没有联系".但是,如果您要输出$uid,您会看到它确实包含当前用户的ID.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有