无法让 irb 控制台与 tumblr_client gem 一起工作
Not able to get irb console working with tumblr_client gem
我对 API 的经验很少,这是我正在努力改变的,所以我正在尝试开始使用 Tumblr api。我已经安装了 tumblr_client gem (documentation here) 并按照说明进行操作。我已经在一个新的 Tumblr 帐户上创建了一个应用程序并拥有必要的 OAuth 信息(consumer_key、consumer_secret 等)。事实证明,让它做某事很困难,所以像一个优秀的小程序员一样,我我正在尝试让控制台进行一些探索。
这需要一些设置,所以我按照此处的说明进行操作:
The first time that you go to use the irb console, if you have no
.tumblr file, it will walk you through the process of generating one.
You will be prompted for your consumer_key and consumer_secret (which
you can get here: http://www.tumblr.com/oauth/register) and then sent
out to the site to verify your account. Once you verify, you will be
redirected to your redirect URL (localhost by default) and copy the
oauth_verifier back into the console. Then you're all set!
系统提示我输入我的密钥和密码,然后我转到 URL 我应该给予授权的地方。 Tumblr 给了我一个弹出窗口,上面写着 "Is it alright for this application to access some of your data and make posts to your account? You are logged in as example@example.com" 和取消或允许的选项。我点击允许,它只会让我进入帐户本身,我从来没有得到任何类型的验证码,我可以输入它来让控制台正常工作。
此时我被卡住了,无法继续前进,所以我正在激活网络。关于我哪里出错了?
您是否在 oauth 配置过程中的任何时候指定了重定向或回调 url?它可能是在 tumblr 的 API 网站上完成的。此 url 将是您应用程序的端点,Tumblr 向其发送带有用户数据的请求。顺便说一下,oauth 的设置有时会让人感到困惑。例如,您将无法使用 localhost
作为回调 url,尽管您可以使用免费的本地隧道应用程序获得一个临时域名。
编辑 要更详细地说明其中的一些要点...
- callback url:重申一下,这不能是本地主机。设置正确的回调 url 将使您摆脱当前的困境。您希望确认页面重定向到您的应用程序,而不是重定向到 tumblr 主页。无论如何,我认为您在部署之前想要对其进行测试是完全明智的。但是除非您部署或使用本地隧道,否则您的本地应用程序实际上没有 URL 可以从除您的计算机以外的任何地方访问。
- 本地隧道服务:ngrok, localtunnel。举一个 ngrok 的例子:假设你有一个 Rails 服务器 运行ning 在端口 3000 上。然后在另一个终端你 运行
ngrok 3000
并且你得到一个 url 将您的本地服务器暴露给真实的互联网。请注意,每次您重新启动 ngrok 时,这都会发生变化(除非您支付费用)。在您的应用程序中,您应该为回调创建一个唯一的路由。假设您有一条路线将 /oauth_callback
匹配到 oauth_callback
控制器操作。那么您作为回调 url 提供的路线将是 http://MY_CUSTOM_NAME.ngrok.com/oauth_callback
。
- controller action: 我不太清楚Tumblr 是如何将用户数据发送给回调的。也许信息在 headers 中,或者可能在 body 中。它可能是 JSON 或 XML。无论是什么,您都可以通过在控制器操作中放置断点来探索数据。您可以检查
params
、headers
等。我希望他们会为您提供一些令牌凭据,并且可能还会提供一个用户 name/email。
我对 API 的经验很少,这是我正在努力改变的,所以我正在尝试开始使用 Tumblr api。我已经安装了 tumblr_client gem (documentation here) 并按照说明进行操作。我已经在一个新的 Tumblr 帐户上创建了一个应用程序并拥有必要的 OAuth 信息(consumer_key、consumer_secret 等)。事实证明,让它做某事很困难,所以像一个优秀的小程序员一样,我我正在尝试让控制台进行一些探索。
这需要一些设置,所以我按照此处的说明进行操作:
The first time that you go to use the irb console, if you have no .tumblr file, it will walk you through the process of generating one. You will be prompted for your consumer_key and consumer_secret (which you can get here: http://www.tumblr.com/oauth/register) and then sent out to the site to verify your account. Once you verify, you will be redirected to your redirect URL (localhost by default) and copy the oauth_verifier back into the console. Then you're all set!
系统提示我输入我的密钥和密码,然后我转到 URL 我应该给予授权的地方。 Tumblr 给了我一个弹出窗口,上面写着 "Is it alright for this application to access some of your data and make posts to your account? You are logged in as example@example.com" 和取消或允许的选项。我点击允许,它只会让我进入帐户本身,我从来没有得到任何类型的验证码,我可以输入它来让控制台正常工作。
此时我被卡住了,无法继续前进,所以我正在激活网络。关于我哪里出错了?
您是否在 oauth 配置过程中的任何时候指定了重定向或回调 url?它可能是在 tumblr 的 API 网站上完成的。此 url 将是您应用程序的端点,Tumblr 向其发送带有用户数据的请求。顺便说一下,oauth 的设置有时会让人感到困惑。例如,您将无法使用 localhost
作为回调 url,尽管您可以使用免费的本地隧道应用程序获得一个临时域名。
编辑 要更详细地说明其中的一些要点...
- callback url:重申一下,这不能是本地主机。设置正确的回调 url 将使您摆脱当前的困境。您希望确认页面重定向到您的应用程序,而不是重定向到 tumblr 主页。无论如何,我认为您在部署之前想要对其进行测试是完全明智的。但是除非您部署或使用本地隧道,否则您的本地应用程序实际上没有 URL 可以从除您的计算机以外的任何地方访问。
- 本地隧道服务:ngrok, localtunnel。举一个 ngrok 的例子:假设你有一个 Rails 服务器 运行ning 在端口 3000 上。然后在另一个终端你 运行
ngrok 3000
并且你得到一个 url 将您的本地服务器暴露给真实的互联网。请注意,每次您重新启动 ngrok 时,这都会发生变化(除非您支付费用)。在您的应用程序中,您应该为回调创建一个唯一的路由。假设您有一条路线将/oauth_callback
匹配到oauth_callback
控制器操作。那么您作为回调 url 提供的路线将是http://MY_CUSTOM_NAME.ngrok.com/oauth_callback
。 - controller action: 我不太清楚Tumblr 是如何将用户数据发送给回调的。也许信息在 headers 中,或者可能在 body 中。它可能是 JSON 或 XML。无论是什么,您都可以通过在控制器操作中放置断点来探索数据。您可以检查
params
、headers
等。我希望他们会为您提供一些令牌凭据,并且可能还会提供一个用户 name/email。