我试图将我的php应用程序中的用户连接到23和我api但试图使用提供的令牌时有问题。我能顺利拿到令牌下面的HTTP动作:23和我的API与咕噜401无效的令牌
<a href="https://api.23andme.com/authorize/?redirect_uri={{ env('APP_URL') }}/receive_code/&response_type=code&client_id={{ env('DNA_ID') }}&scope=basic names email">Connect with 23andMe</a>
会被重定向到下面的控制器,并成功返回,我存储在用户表上作记号
public function connectDNA()
{
$code = $_GET["code"];
$client = new Client();
$result = $client->post('https://api.23andme.com/token/', [
'form_params' => [
'client_id' => env('DNA_ID'),
'client_secret' => env('DNA_SECRET'),
'grant_type' => 'authorization_code',
'code' => $code,
'redirect_uri' => 'http://localhost:8000/receive_code/',
'scope' => 'basic names email'
]
]);
$contents = $result->getBody()->getContents();
$contents = json_decode($contents);
$user = Auth::user();
$user->dna_token = $contents->access_token;
$user->save();
return redirect('/home');
}
是问题,当我尝试使用该标记来访问23和我的API,我怀疑这是因为我不知道如何构建调用。我试过多种变化在以下方面:
$result = $client->get('https://api.23andme.com/3/account/', [
'Authorization' => $user->dna_token
]);
return $result;
更新:这个问题似乎是,我如何格式化狂饮。当我卷曲:
curl "https://api.23andme.com/3/account/" \ > -H "Authorization: Bearer demo_oauth_token"
该API返回一个测试结果,我将如何格式上面在Guzzle?
是的,这是由他们的支持,建议然而,它仍然给了我401 –
一定有什么东西与脚麻访问令牌,然后。我刚刚执行了该cURL命令,并获得了一个演示响应,它告诉我没有任何其他缺失头文件需要考虑。只是要彻底......尝试将演示cURL调用转换为您的guzzle代码,并分析响应* it *返回的结果。 –
我刚刚生成了一个新的身份验证令牌,并再次尝试查看它是否已过期,但它仍然给我提供了该错误。难道说令牌应该是字符串以外的东西吗? –