Мне нужно только аутентифицировать пользователей Reddit на моем сайте (в php). Я использую простой file_get_contents с stream_context_create для заголовков. Я уже реализовал аутентификацию пользователя Facebook.
Для Reddit я могу успешно получить access_token. Но когда я получаю запрос / api / v1 / me с этим access_token, я всегда получаю HTTP / 1.1 403 Forbidden.
Пожалуйста помоги.
Это код php, который я использую после получения access_token
$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"}
За реддит Правила API, Вам необходимо отправить уникальный User-Agent с вашим запросом.
Измените строку User-Agent вашего клиента на что-то уникальное и описательное, желательно со ссылкой на ваше имя пользователя reddit.
Пример:User-Agent: flairbot/1.0 by spladug
Многие пользовательские агенты по умолчанию (такие как «Python / urllib» или «Java») радикально ограничены, чтобы поощрять уникальные и описательные строки user-agent.
Других решений пока нет …