0

我正在使用 PHP curl 从 URL 获取 Oauth 令牌:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Authorization: ' . oauth_headers($consumer_key, $consumer_secret, $token, $token_secret, $verifier)));curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

https://www.yammer.com/oauth/request_token

然后,我通过以下方式得到了回应:

输出

-------
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 10 Oct 2012 10:32:47 GMT
.........
.........

oauth_token=6y33AOcKOJVRVRggumfa9Q&oauth_token_secret=usjLakBRQh3Cq4rTWT1aJe9NVo7XKiATYIWvvVovI&oauth_callback_confirmed=true

我如何从结果中提取oauth_token_secret和提取oauth_token

4

2 回答 2

1

你应该使用parse_str().

更改CURLOPT_HEADERfalse然后:

$result = curl_exec($ch);
$string = parse_str($result);
echo $oauth_token_secret;
echo '<br />--------<br />';
echo $oauth_token;
于 2012-10-10T10:50:35.743 回答
0

如果这是您得到的答案,您可能希望在双换行符之后使用 oauth-... 刺痛 ("\n")

那么你可以这样做:

parse_str(substr($s, strpos($s, "\n\n"));
echo $oauth_token_secret;
echo $oauth_token;

你也可以试试这个来看看解析了什么:

parse_str(substr($s, strpos($s, "\n\n"), $test);
var_dump($test);
于 2012-10-10T10:56:55.273 回答