Facebook平台 - 验证v2.2中的Facebook用户访问令牌

时间:2015-03-19 23:44:42

标签: php android ios facebook-graph-api

关于升级到Facebook平台v2.2的问题,特别是这部分:

  

之前已弃用的REST API已完全删除   v2.1,所有仍在使用它的应用程序必须迁移到使用Graph API。

在大多数情况下,在我的Android和iOS应用程序中,我没有使用REST API。我使用的是Android SDK和iOS SDK。但是,我有一个例外。当我呼叫我的服务器登录或基本上做任何事情时,我试图确保尝试登录/访问数据的人确实是他们所说的人。我这样做:

$context = stream_context_create(array('http' => array('header'=>'Connection: close\r\n')));
$response = file_get_contents("https://graph.facebook.com/debug_token?input_token=".$accessToken."&access_token=MY_APP_ACCESS_TOKEN", false, $context);
$jsonObject = json_decode($response, true);
$data = $jsonObject["data"];
$facebookId = $this->getFacebookId();

 if(isset($data['is_valid']) && $data['is_valid'] === true) {
        if(isset($data['user_id'])) {
               if($data['user_id'] == $facebookId) {
                    return true;

那里缺少一些代码,但这是它的要点。获取访问令牌和Facebook ID。我使用访问令牌来查看它是否合法,分配给该访问令牌的user_id是尝试获取信息的人的ID。如果是这样,我让他们进去。

我的问题是,我是否正确理解这种情况已经消失,我必须使用Graph API以某种方式做同样的事情?如果从Android / iOS获得访问令牌和Facebook ID,通过PHP中的Graph API如何完成?

编辑:刚刚意识到这实际上是在2.0到2.1部分,但问题仍然存在,我应该关注我的服务器端代码吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我想我没有什么可担心的。我正在使用的方法是在Facebook平台文档中:

https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.2#checktoken

检查访问令牌。此页面上没有任何内容说明它被弃用。