Bob*_*ack 5 authentication facebook facebook-graph-api facebook-feed
例如,这是一个"页面":
http://www.facebook.com/facebook
那个页面有一个RSS提要(我想要使用它,理想情况下),但是a)它浏览器嗅探意味着我需要从脚本中伪造用户代理来获取它 - 这感觉非常脆弱b)质量返回的数据真的很差.
我可以使用图形api来获取相同的数据吗?这个网址:
https://graph.facebook.com/facebook/feed
暗示我可以,json对我来说很好,虽然我是从PHP脚本而不是客户端获取它.但是,当我为我的实际页面尝试该URL时,我得到以下内容:
{
"error": {
"type": "OAuthAccessTokenException",
"message": "An access token is required to request this resource."
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我的页面需要访问令牌,而其他页面"更公开" - 是否在页面上的某个配置?如果没有,获取访问密钥的最佳方法是什么 - 请注意,这不是要求页面所有者进行身份验证的交互式脚本.
如果我尝试通过CURL访问URL,它对我来说在PHP中运行正常.
$curlResponse = http('https://graph.facebook.com/facebook/feed');
$facebookFeed = json_decode($curlResponse['data'], true);
var_dump($facebookFeed);
Run Code Online (Sandbox Code Playgroud)
使用这个PHP功能:
function http($url) {
$timeout = 30;
$connectTimeout = 30;
$sslVerifyPeer = false;
$response = array();
$ci = curl_init();
/* Curl settings */
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $connectTimeout);
curl_setopt($ci, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $sslVerifyPeer);
curl_setopt($ci, CURLOPT_URL, $url);
$response['http_code'] = curl_getinfo($ci, CURLINFO_HTTP_CODE);
$response['api_call'] = $url;
$response['data'] = curl_exec($ci);
curl_close ($ci);
return $response;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3450 次 |
| 最近记录: |