Я пишу функцию в Node.js для входа пользователя в Firebase с использованием учетных данных Twitter через REST API (запросы выполняются с использованием библиотеки request ). Я могу использовать учетные данные Twitter, чтобы опубликовать твит, но при попытке войти в Firebase с помощью /accounts:signInWithIdp
возвращается следующая ошибка:
{ error:
{ code: 400,
message: 'INVALID_IDP_RESPONSE : Failed to fetch resource from https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true, http status: 401, http response: {"errors":[{"code":32,"message":"Could not authenticate you."}]}',
errors: [ [Object] ] } }
Это мой код:
loginWithOAuth = (idToken, postBody, onCompletion, onError) => {
var form = {
postBody: querystring.stringify(postBody),
requestUri: 'request uri',
returnIdpCredential: 'false',
returnSecureToken: 'true',
}
request.post({
url: 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=' + firebase_api_key,
body: form,
json: true
}, (error, r, body) => {
// ...
});
}
где postBody
имеет форму
{
access_token: 'token',
oauth_token_secret: 'token secret',
providerId: 'twitter.com'
}
Мое приложение Twitter имеет разрешение на доступ к электронной почте пользователя. Я также внес в белый список requestUri
в Firebase и Twitter. Восстановление моего приложения и пользовательских ключей не имеет значения.
Что мне не хватает?