0

文档似乎没有显示检索电子邮件的方法(使用 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.

4

0 回答 0