&
转换为&
。
这是造成问题的一行:
$accessToken = file_get_contents('https://graph.facebook.com/oauth/access_token?client_id=' . APPID . '&redirect_uri=' . APPURL . 'callback.php&client_secret=' . APISECRET . '&code=' . $_REQUEST['code']);
这就是错误报告返回的内容:
[20-Jul-2010 15:47:35] PHP Warning: file_get_contents(https://graph.facebook.com/oauth/access_token?client_id=xxxxxxx&redirect_uri=http://apps.facebook.com/xxxxx/callback.php&client_secret=xxxxxx&code=) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request
在第8行的/home/pk1no/public_html/video/callback.php
有趣的是同一个脚本适用于我的Joyent专用,但不适用于我的HostGator专用。我对此感到有些困惑。
答案 0 :(得分:2)
警告信息是否会被调用,而不是在调用file_get_contents
之前,还有其他问题?
答案 1 :(得分:0)
您的计算机上是否启用了allow_url_fopen?否则,您无法通过URL打开文件。
您还可以尝试使用urlencode()包装URL。
答案 2 :(得分:0)
只有错误消息中包含HTML实体才能在浏览器中正确显示。
您没有正确构建您的URL,很可能通过URL fopen包装器使其无法解析。使用urlencode包装任何可能包含一些非URL安全字符的内容......
$url='https://graph.facebook.com/oauth/access_token'.
'?client_id=' . urlencode(APPID) .
'&redirect_uri=' . urlencode(APPURL) . 'callback.php'.
'&client_secret=' . urlencode(APISECRET) .
'&code=' . urlencode($_REQUEST['code']);
$accessToken = file_get_contents($url);