gpt4 book ai didi

php - Twitter API 错误 "Missing required parameter: grant_type"使用 Unirest.io

转载 作者:搜寻专家 更新时间:2023-10-31 22:02:53 24 4
gpt4 key购买 nike

我正在尝试使用 Unirest.io PHP 从 Twitter 获取 API token 。我的代码如下:

[in PHP]
$response = Unirest::post("https://api.twitter.com//oauth2/token",
array(
"Authorization" => "Basic [AUTH_KEY]",
"Content-Type" => "application/x-www-form-urlencoded;charset=UTF-8"
),
array("grant_type" => "client_credentials")

);

我从推特上得到的是:

{
errors: [
{
code: 170,
label: "forbidden_missing_parameter",
message: "Missing required parameter: grant_type"
}
]
}

据我了解,它要求请求的“主体”包含“grant_type”:“client_credentials”,我认为这包含在上面的unirest请求中,但显然不是这样。有任何帮助或意见吗?

最佳答案

这真的来晚了,但将来可能会对其他人有所帮助。前一段时间有这个问题,但这是我解决它的方法。我基本上将“grant_type”作为字符串而不是像这样的数组传递

$uri = "https://api.twitter.com/oauth2/token";

$headers = [
"Authorization: Basic ".XXXXXXX,
"Content-Type: application/x-www-form-urlencoded;charset=UTF-8",
];

$verb = "POST";

//here is where i replaced the value of body with a string instead of an array
$body = 'grant_type=client_credentials';

$ch = curl_init($uri);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $verb);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLINFO_HTTP_CODE, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);

$result = curl_exec($ch);
$response = json_decode($result);

它返回了 Twitter 记录的预期结果。

关于php - Twitter API 错误 "Missing required parameter: grant_type"使用 Unirest.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24844149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com