如何无限制发布Google Blogger内容且无需手动刷新凭证
Google Blogger 自动发布凭证长期有效解决方案
你遇到的凭证频繁失效问题主要来自两个核心原因:
- Google Cloud控制台创建的OAuth应用处于测试模式,该模式下刷新令牌默认仅有7天有效期,到期自动失效
- 当前代码缺少主动刷新access token的逻辑,调用API过程中凭证过期后无法自动更新
具体修复步骤
- 第一步:切换OAuth应用为正式发布模式
进入对应Google Cloud项目的「API和服务」-「OAuth同意屏幕」页面,将发布状态从「测试」调整为「正式发布」,调整后只要你不主动在Google账号安全设置中撤销该应用授权,刷新令牌可长期有效,不会过期。 - 第二步:更新代码补全自动刷新逻辑
你当前使用的oauth2client库原生支持凭证自动刷新,只需要在原有授权逻辑中新增过期校验和刷新逻辑即可,修改后的完整参考代码如下:
import httplib2 from oauth2client.file import Storage from oauth2client.client import flow_from_clientsecrets, run_flow CLIENT_SECRET = 'client_secret.json' SCOPE = 'https://www.googleapis.com/auth/blogger' STORAGE = Storage('credentials.storage') def authorize_credentials(): # 从本地存储读取已有凭证 credentials = STORAGE.get() # 凭证不存在或失效时重新走授权流程 if credentials is None or credentials.invalid: flow = flow_from_clientsecrets(CLIENT_SECRET, scope=SCOPE) http = httplib2.Http() credentials = run_flow(flow, STORAGE, http=http) # 凭证即将过期时自动刷新并保存新凭证 if credentials.access_token_expired or credentials.access_token_expires_in < 60: http = httplib2.Http() credentials.refresh(http) STORAGE.put(credentials) return credentials # 每次调用Blogger API前调用该方法获取最新有效凭证即可 credentials = authorize_credentials()
调整完成后即可无需手动更新凭证,长期自动发布内容,Blogger API默认每日配额为10000次请求,完全可以满足你每天发布10篇帖子的需求。
内容的提问来源于stack exchange,提问作者OE SEOK HWANG
相关产品推荐
相关产品推荐

