作为技术提供商,我目前正在努力整合 WhatsApp。主要问题是用户通过 Facebook 登录成功处理后获得
access_token
。当我获取从登录流收到的数据并将请求发送到 https://graph.facebook.com/v21.0/oauth/access_token
端点时,出现以下错误:
{
"error": {
"message": "Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request",
"type": "OAuthException",
"code": 100,
"error_subcode": 36008,
"fbtrace_id": "AAH5Klp99JmQfQsk2MSLckg"
}
}
我尝试搜索我到底应该设置什么,大多数响应都正确设置了有效的 OAuth 重定向 URI。我在这里允许了,并且也遵循了这个文档:https://developers.facebook.com/docs/whatsapp/embedded-signup/implementation
不幸的是,没有任何帮助。
在开发过程中,我还使用嵌入式注册集成帮助程序进行了测试,您可以在 Facebook 开发人员的 WhatsApp 产品中找到它
当您完成此注册流程时,您将获得所有必要的令牌和 ID 来获得
access_token
。
您可以在页面上获取此令牌。他们发送以下请求:
curl -X POST \
'https://graph.facebook.com/v21.0/oauth/access_token' \
-H 'Content-Type: application/json' \
-d '{
"client_id": "123",
"client_secret": "********************************",
"code": "skjhfbasjfbaskjfbashbfjhas",
"grant_type": "authorization_code",
"redirect_uri": "https://developers.facebook.com/es/oauth/callback/?business_id=321&nonce=ZCqFKxk0Xd1Gr7OA0unqkb22bPzMtxuZ"
}'
令我感兴趣的是他们要求中的
redirect_uri
。我不知道为什么,但此 URI 与您调用登录的 URI 不匹配。页面网址为 https://developers.facebook.com/apps/123/whatsapp-business/es-integration/?business_id=321&session_info_version=3
我很绝望,我不知道该如何解决。你知道我该如何解决这个问题吗?
感谢您的帮助。
不确定您在哪个平台上,但我正在 Laravel 上工作并且遇到了与此处提到的相同的问题。设法通过使用下面的方法修复。
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
$client = new Client();
$headers = [
'Content-Type' => 'application/json',
'Accept' => 'application/json'
];
$request = new Request(
'GET',
'https://graph.facebook.com/v21.0/oauth/access_token?client_id=' . $fbId . '&client_secret=' . $fbSecret . '&code=' . $code,
$headers
);
$response = $client->sendAsync($request)->wait();
$body = json_decode($response->getBody(), true);
if (isset($body['access_token'])) {
return $body['access_token'];
}
不断收到错误消息“重定向 uri 不匹配...”,但在使用邮递员尝试完全相同的 url 时,我成功获取了访问令牌。因此尝试使用 PHP - Guzzle(由邮递员生成的代码)并设法获得成功的 json 响应。
{
"access_token": {token},
"token_type": "bearer",
"expires_in": {time}
}
希望有帮助。