使用 httr 为 Trello 创建 oauth 令牌时如何修复 "invalid return_url" 错误?
How to fix "invalid return_url" error when creating oauth token for Trello with httr?
我想使用 trelloR 包管理我的 Trello 卡片和看板,但是当我尝试使用 get_token
函数创建令牌时,我在浏览器上收到一条错误消息:"Invalid return_url"。
my_token <- get_token(key = my_key, secret = my_secret)
my_key
是我个人的 Trello API 密钥,my_secret
是我的 OAuth 密钥。登录后,我在 Trello 页面上找到了它们,该页面为您提供了身份验证代码:https://trello.com/app-key
要使用 Trello API 和访问看板,我需要一个令牌。此令牌由 httr 包使用 OAuth1.0 生成。事实上,根据 trelloR here 的作者和维护者 Jakub Chromec 的说法,函数 get_token
做这样的事情:
trello.app = httr::oauth_app(
appname = "trello-app",
key = my_key,
secret = my_secret)
trello.urls = httr::oauth_endpoint(
request = "OAuthGetRequestToken",
authorize ="OAuthAuthorizeToken?scope=read&expiration=30days&name=trello-app",
access = "OAuthGetAccessToken",
base_url = "https://trello.com/1")
httr::oauth1.0_token(
endpoint = trello.urls,
app = trello.app)
当我使用我的个人密钥和密码执行此代码或函数 get_token
时,我被重定向到我的浏览器,这是正常的。如 this page 所述,应出现一个屏幕,要求我允许身份验证。但是我只是在浏览器中收到一条错误消息:"Invalid return_url".
在 RStudio 控制台中,这仍然显示:
> my_token <- get_token(my_key, my_secret)
Waiting for authentication in browser...
Press Esc/Ctrl + C to abort
我在 macOS 10.15 下使用 httr 1.4.1、curl 4.2 和 trelloR 0.6.0 以及 R 3.6.1。
一些人报告说这个问题是在引入 Allowed Origins 之后开始的,他们可以通过添加以下来源来解决这个问题:
http://localhost:1410
在 appkey 页面上。这让我有点惊讶,因为默认 *
应该涵盖所有来源,但你去吧。
今天(11/23/2019)尝试这个,我无法让通配符作为允许的来源。您应该指定您所在的域运行调用授权。
混淆的一个来源:https://trello.com/app-key "Allowed Origins" 下的评论指的是 "your application is allowed to redirect back to following the authorization flow." 让我有点困惑的网站。该列表应包括您要重定向回的网站以及您从中调用 Trello.authorize() 的网站。
如果你想"I don't need a redirect"(而且,事实上,如果你使用client.js,我认为你不能指定重定向),那么[=21=下的那些评论] 可能会让您相信您不需要在那里指定任何内容。那是不正确的。
总结:即使你不想post-授权重定向,你仍然必须列出一个来源。
此外,您不能在 Allowed Origins 中指定 file://,因此您不能 运行 您的 javascript 本地文件。
我想使用 trelloR 包管理我的 Trello 卡片和看板,但是当我尝试使用 get_token
函数创建令牌时,我在浏览器上收到一条错误消息:"Invalid return_url"。
my_token <- get_token(key = my_key, secret = my_secret)
my_key
是我个人的 Trello API 密钥,my_secret
是我的 OAuth 密钥。登录后,我在 Trello 页面上找到了它们,该页面为您提供了身份验证代码:https://trello.com/app-key
要使用 Trello API 和访问看板,我需要一个令牌。此令牌由 httr 包使用 OAuth1.0 生成。事实上,根据 trelloR here 的作者和维护者 Jakub Chromec 的说法,函数 get_token
做这样的事情:
trello.app = httr::oauth_app(
appname = "trello-app",
key = my_key,
secret = my_secret)
trello.urls = httr::oauth_endpoint(
request = "OAuthGetRequestToken",
authorize ="OAuthAuthorizeToken?scope=read&expiration=30days&name=trello-app",
access = "OAuthGetAccessToken",
base_url = "https://trello.com/1")
httr::oauth1.0_token(
endpoint = trello.urls,
app = trello.app)
当我使用我的个人密钥和密码执行此代码或函数 get_token
时,我被重定向到我的浏览器,这是正常的。如 this page 所述,应出现一个屏幕,要求我允许身份验证。但是我只是在浏览器中收到一条错误消息:"Invalid return_url".
在 RStudio 控制台中,这仍然显示:
> my_token <- get_token(my_key, my_secret)
Waiting for authentication in browser...
Press Esc/Ctrl + C to abort
我在 macOS 10.15 下使用 httr 1.4.1、curl 4.2 和 trelloR 0.6.0 以及 R 3.6.1。
一些人报告说这个问题是在引入 Allowed Origins 之后开始的,他们可以通过添加以下来源来解决这个问题:
http://localhost:1410
在 appkey 页面上。这让我有点惊讶,因为默认 *
应该涵盖所有来源,但你去吧。
今天(11/23/2019)尝试这个,我无法让通配符作为允许的来源。您应该指定您所在的域运行调用授权。
混淆的一个来源:https://trello.com/app-key "Allowed Origins" 下的评论指的是 "your application is allowed to redirect back to following the authorization flow." 让我有点困惑的网站。该列表应包括您要重定向回的网站以及您从中调用 Trello.authorize() 的网站。
如果你想"I don't need a redirect"(而且,事实上,如果你使用client.js,我认为你不能指定重定向),那么[=21=下的那些评论] 可能会让您相信您不需要在那里指定任何内容。那是不正确的。
总结:即使你不想post-授权重定向,你仍然必须列出一个来源。
此外,您不能在 Allowed Origins 中指定 file://,因此您不能 运行 您的 javascript 本地文件。