我有简单的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
提前致谢!
答案 0 :(得分:0)
就个人而言,我会使用php curl和https(http://developers.facebook.com/docs/reference/api/)
将输出HTTP而不是HTTPS: { “错误”:{ “message”:“client_secret必须通过HTTPS传递”, “type”:“OAuthException”, “代码”:1 } }
请在开发期间启用错误报告。你可能会得到: 警告:file_get_contents():无法找到包装器“https” - 您是否忘记在配置PHP时启用它?在第3行的/usr/local/apache2/htdocs/xxxxx/test12345.php
答案 1 :(得分: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/