ben*_*ben 5 google-contacts-api oauth-2.0 ruby-2.1
我正在编写脚本以使用谷歌联系人api gem获取谷歌联系人.我可以使用以下代码成功访问令牌:
require 'rubygems'
require 'launchy'
require 'oauth2'
require 'googlecontacts'
require 'google_contacts_api'
# Get your credentials from the console
CLIENT_ID = 'your Id'
CLIENT_SECRET = 'your Secret'
OAUTH_SCOPE = 'https://www.google.com/m8/feeds'
REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oob'
client = OAuth2::Client.new(CLIENT_ID, CLIENT_SECRET,site: 'https://accounts.google.com',token_url: '/o/oauth2/token', authorize_url: '/o/oauth2/auth')
url = client.auth_code.authorize_url(scope: OAUTH_SCOPE, redirect_uri: REDIRECT_URI)
Launchy.open(url)
$stdout.write "Enter authorization code: "
code = gets.chomp
token = client.auth_code.get_token(code, :redirect_uri => REDIRECT_URI)
Run Code Online (Sandbox Code Playgroud)
问题:
我知道这不是最好的方法,因为它很累.每次我运行脚本时,用户都会给出访问说明.此外,我还必须手动将令牌从浏览器粘贴到终端.
题:
如何能够存储检索到的令牌,当它过期时如何刷新它?
看起来您正在使用oauth2库来获取访问令牌.该的accessToken类有to_hash()和from_hash()方法,您可以使用序列化和反序列化令牌一旦你得到它,还有一个refresh()方法,一旦它过期刷新访问令牌.如果这是命令行脚本,则可以使用用户主目录中的隐藏文件来存储序列化标记.
| 归档时间: |
|
| 查看次数: |
7099 次 |
| 最近记录: |