gpt4 book ai didi

oauth-2.0 - 获取 token ,存储它,如果过期则使用 ruby​​ 中的 oauth2 gem 刷新它

转载 作者:行者123 更新时间:2023-12-02 23:54:38 25 4
gpt4 key购买 nike

我正在编写脚本来使用google contacts api gem获取谷歌联系人。我可以使用此代码成功访问 token :

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)

PROBLEM:

我知道这不是最好的方法,因为它很累。每次我运行脚本时,用户都会给出访问指令。而且我还必须手动将 token 从浏览器复制粘贴到终端。

QUESTION:

如何存储检索到的 token ,以及当 token 过期时如何刷新它?

最佳答案

您似乎正在使用 oauth2 library获取访问 token 。 AccessToken class具有 to_hash()from_hash() 方法,您可以在获取 token 后使用它们来序列化和反序列化 token ,以及 refresh( ) 方法在访问 token 过期后刷新它。如果这是命令行脚本,您可以使用用户主目录中的隐藏文件来存储序列化 token 。

关于oauth-2.0 - 获取 token ,存储它,如果过期则使用 ruby​​ 中的 oauth2 gem 刷新它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26526322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com