目前,我正在为Pinterest开发一款Android应用程序。我想做的是从一个pinterest(刚刚调出他们的API页面)获得一个OAuth令牌。我发现某人的PHP脚本似乎允许某人使用以下方法登录:
function fetch_access_token($client_id, $client_secret, $username, $password) {
$ch=curl_init();
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
$post= array(
"grant_type" => 'password',
"scope" => "read_write",
);
$host = "https://api.pinterest.com";
$endpoint = "/oauth/2/access_token?client_id=$client_id&client_secret=$client_secret";
$request_url = $host . $endpoint;
curl_setopt($ch, CURLOPT_URL, $request_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$s=curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ($info['http_code'] >= 200 and $info['http_code'] < 300) {
list($junk, $access_token) = explode('=', $s, 2);
$this->access_token = $access_token;
}
return $s;
}
正如您所看到的,在这个函数的第三行中,CURLOPT_USERPWD
被用作curl-post选项。我已经编写了一个HttpClient包装器库,用于发出请求。我可以很容易地添加HTTPPOST参数,但是,我不知道为CURLOPT_USERPWD
添加什么。我在谷歌上搜索了一下,没有发现任何有用的东西。
所以,主要的问题是,NameValuePair
的名称通常应该与PHP的CURLOPT_USERPWD
相对应?第二个问题是,这是一个合法的问题,还是我在这里找错了树?似乎如果这是PHP/Coll可以处理的事情,我应该能够以某种方式将其破解到我的应用程序中。
这是Authorization头。
所以对于Basic方法,它将是base64编码的"username:password"值,前面加上"Basic"。例如
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==