0

我在使用简单的 PHP 函数 file_get_contents 时遇到问题...它显示为 NULL,但它已在服务器上启用,所以我不知道问题出在哪里?

<?php
$url = "http://graph.facebook.com/oauth/access_token?client_id=(ID)&
    client_secret=(PW)&grant_type=client_credentials";
$app_token = file_get_contents($url);
echo $app_token;
?>

(ID) 和 (PW) 分别是 appID 和 appSecret

提前致谢!

4

2 回答 2

0

就个人而言,我会使用 php curl 和 https (http://developers.facebook.com/docs/reference/api/)

HTTP 而不是 HTTPS 会输出: { "error": { "message": "client_secret must be pass over HTTPS", "type": "OAuthException", "code": 1 } }

请在开发过程中打开错误报告。您可能会得到: 警告:file_get_contents(): Unable to find the wrapper "https" - 您在配置 PHP 时是否忘记启用它?在第 3 行的 /usr/local/apache2/htdocs/xxxxx/test12345.php

于 2012-10-27T08:39:06.613 回答
0

使用需要使用HTTPS,并检查启用了哪些包装器

在 Windows 上,您应该在 php.ini 中看到它

extension=php_openssl.dll

检查包装

<?php
    var_dump(stream_get_wrappers());
?>

哪个应该给出输出,例如

array(12) {
  [0]=>
  string(5) "https"
  [1]=>
  string(4) "ftps"
  [2]=>
  string(13) "compress.zlib"
  [3]=>
  string(14) "compress.bzip2"
  [4]=>
  string(3) "php"
  [5]=>
  string(4) "file"
  [6]=>
  string(4) "glob"
  [7]=>
  string(4) "data"
  [8]=>
  string(4) "http"
  [9]=>
  string(3) "ftp"
  [10]=>
  string(4) "phar"
  [11]=>
  string(3) "zip"

注意 HTTPS 在数组中。

如何获取令牌的完整示例

<?php 

    $app_id = "YOUR_APP_ID";
    $app_secret = "YOUR_APP_SECRET";
    $app_token_url = "https://graph.facebook.com/oauth/access_token?"
        . "client_id=" . $app_id
        . "&client_secret=" . $app_secret 
        . "&grant_type=client_credentials";

    $response = file_get_contents($app_token_url);
    $params = null;
    parse_str($response, $params);

    echo("This app's access token is: " . $params['access_token']);

 ?>

http://developers.facebook.com/docs/howtos/login/login-as-app/

于 2012-10-27T12:16:05.727 回答