curl https://accounts.google.com/o/oauth2/token -d "client_id=111111111111%2D8pc07m34pj5eb5nid0u5n9fgs5vrndpm%2Eapps%2Egoogleusercontent%2Ecom&grant_type=password&username=123456%2E123%40gmail%2Ecom&password=123456&scope=https%3A%2F%2Fwww%2Egoogleapis%2Ecom%2Fauth%2Fcalendar&redirect_url=https%3A%2F%2Fwww%2Egoogle%2Ecom"
是我的命令,但我不断得到:
{
"error" : "invalid_request"
}
我正在尝试编写一个可以读取命令行中指定的任何Gmail帐户的日历数据的应用程序:
./ foo gmailID@gmail.com密码
但是我不知道我的foo如何使用gmailID和密码来获取令牌,而无需用户交互(即,打开url并单击“接受”),因此我可以使用令牌来调用Google Calendar API来读取该gmail帐户的日历数据。我是新来的。我至少在正确的轨道上吗?
答案 0 :(得分:1)
您不能在grant_type
上发送邮件和密码,并且未经用户许可也不能代表用户提出请求,他们需要征得他们的同意。
如果要代表用户发出请求(当应用程序中不存在请求时),则需要实现脱机访问。我建议您看看this reference。
一旦用户接受使用您的应用程序的权限,Google就会生成您需要存储在数据库中的refreshToken。使用该refreshToken,您将能够生成新的访问令牌,并将使用这些令牌进行请求。