Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Facebook平台-验证v2.2中的Facebook用户访问令牌_Php_Android_Ios_Facebook Graph Api - Fatal编程技术网

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

Php Facebook平台-验证v2.2中的Facebook用户访问令牌,php,android,ios,facebook-graph-api,Php,Android,Ios,Facebook Graph Api,关于Facebook平台升级到v2.2的问题,特别是这一部分: 以前不推荐使用的REST API已在中完全删除 v2.1版,所有仍在使用它的应用程序必须迁移到使用Graph API 在大多数情况下,在我的Android和iOS应用程序中,我没有使用RESTAPI。我正在使用Android SDK和iOS SDK。然而,我有一个例外。当我调用我的服务器登录或真正执行任何基本操作时,我会尝试确保尝试登录/访问数据的人确实是他们所说的人。我这样做: $context = stream_context_

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

以前不推荐使用的REST API已在中完全删除 v2.1版,所有仍在使用它的应用程序必须迁移到使用Graph API

在大多数情况下,在我的Android和iOS应用程序中,我没有使用RESTAPI。我正在使用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。我使用访问令牌来查看它是否为legitamite,分配给该访问令牌的用户id是试图获取信息的人的id。如果是这样,我就让他们进来

我的问题是,我是否正确地理解了这一点,我必须使用Graph API以某种方式做同样的事情?如何通过PHP中的Graph API从Android/iOS获得访问令牌和facebook id来实现这一点

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


谢谢

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


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

为什么要呼叫服务器?为什么不干脆摆脱中间人,从设备本身打电话呢?看@Half Crazed好了,在我完成这个确认逻辑之后,我在服务器上做了很多其他的事情。这是我知道的唯一方式,我可以确信中间的人没有改变JSON越过导线。我确实使用该设备获取访问令牌,然后将该令牌和facebook id发送到服务器,再次确认,然后获取个人数据。