我只需要在我的网站(在php中)验证Reddit用户。我正在使用带有stream_context_create的简单file_get_contents作为标头。我已经实施了Facebook用户身份验证。
对于Reddit,我可以成功获得access_token。但是当我用access_token获取请求/ api / v1 / me时,我总是得到HTTP / 1.1 403 Forbidden。
请帮助。
这是我收到access_token后正在使用的php代码
$opts = array('http' =>
array(
'method' => 'GET',
'header' => 'Authorization: bearer '.$result->access_token)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://oauth.reddit.com/api/v1/me', false, $context);
我有什么遗漏......
这是var_dump
array(7) {
[0]=> string(22) "HTTP/1.1 403 Forbidden"
[1]=> string(24) "Server: cloudflare-nginx"
[2]=> string(35) "Date: Sun, 23 Nov 2014 06:XX:XX GMT"
[3]=> string(38) "Content-Type: text/html; charset=UTF-8"
[4]=> string(17) "Connection: close"
[5]=> string(139) "Set-Cookie: __cfduid=XXXXXXXX; expires=Mon, 23-Nov-15 06:XX:XX GMT; path=/; domain=.reddit.com; HttpOnly"
[6]=> string(28) "CF-RAY: XXXXXXXXX-XXX"
}
答案 0 :(得分:1)
根据reddit API rules,您需要根据您的请求发送唯一的用户代理。
将客户的用户代理字符串更改为唯一且具有描述性的字符串,最好是引用您的reddit用户名 示例:
User-Agent: flairbot/1.0 by spladug
许多默认的用户代理(如“Python / urllib”或“Java”)受到极大的限制,以鼓励使用唯一的描述性用户代理字符串。