我正在尝试通过他们的oauth2机制连接到deviantart 。我确实获得了获取访问令牌的代码,但是当尝试通过file_get_contents获取访问令牌时,却出现了一些奇怪的404错误。但是,当我复制url时,便能够根据需要获取访问令牌。有这个…… 标头设置如何?这是获取访问令牌的代码:
function getAccessToken($code) {
$url = "https://www.deviantart.com/oauth2/token";
$data = array();
$data["grant_type"] = "authorization_code";
$data["client_id"] = $this->client_id;
$data["client_secret"] = $this->client_secret;
$data["redirect_uri"] = $this->redirect_uri;
$data["code"] = $code;
return $this->sendToDeviantArt($url, $data);
}
private function sendToDeviantArt($url=null, $data=array()) {
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}
我花了几个小时,但显然,deviantart希望设置一个USER_AGENT。因此对于记录来说,这是完美无缺的(请注意user_agent变量)
private function sendToDeviantArt($url=null, $data=array()) {
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data),
'user_agent' => $_SERVER["HTTP_USER_AGENT"]
),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句