文档似乎没有显示检索电子邮件的方法(使用 OAuth1 时除外)。
这是我尝试过的:
// handler of redirectUrl:
r := resty.New()
r.SetBasicAuth(conf.TWITTER_CLIENTID, conf.TWITTER_CLIENTSECRET)
res, err := r.R().SetBody(map[string]interface{}{
`code`: in.Code,
`grant_type`: `authorization_code`,
`client_id`: conf.TWITTER_CLIENTID,
`redirect_uri`: tProvider.RedirectURL,
`code_verifier`: state[1],
}).Post(`https://api.twitter.com/2/oauth2/token`)
// res.Body will contain, something like this:
/*
{
"token_type":"bearer",
"expires_in":7200,
"access_token":"Q0V2QUQyN25OLXh1bVdBWUxxxxxxx2NDM1NDk1ODM0NDE6MToxOmF0OjE",
"scope":"users.read tweet.read"
}
*/
如果我们/2/users/me
使用该访问令牌:
res, err = r.R().
SetHeader(`Authorization`, `Bearer `+accessToken).
Get(`https://api.twitter.com/2/users/me`)
// res.Body is:
/*
{
"title": "Unauthorized",
"type": "about:blank",
"status": 401,
"detail": "Unauthorized"
}
*/
但即使成功,Twitter 的 API v2 上也没有包含电子邮件的字段。
问题是,我做错了什么以及如何从 OAuth2 的 access_token 中检索电子邮件?或者是否可以使用/转换该访问令牌以从 Twitter API 1.1 的端点检索,因为我也尝试过,它也给出了215 Bad Authentication Data
.