我在 Python 中有以下适用于 api 的 OAuth 身份验证脚本。我想使用
signature_type='query'
将其转换为在 Google Apps 脚本中运行。我该怎么办?
from requests_oauthlib import OAuth1
BASE_URL = '...'
CLIENT_KEY = '...'
CLIENT_SECRET = '...'
def get_oauth_query():
""" Get OAuth Query """
queryoauth = OAuth1(CLIENT_KEY, CLIENT_SECRET, signature_type="query")
return queryoauth
url = BASE_URL + '/user/v2/credentials/'
queryoauth = OAuth1(CLIENT_KEY, CLIENT_SECRET, signature_type="query")
request = requests.get(url, auth=get_oauth_query())
content = request.json()
credentialId = content[0]["id"]
print(credentialId)
P.S.:我无法在工作笔记本电脑上使用图书馆服务,但我可以将以下OAuth脚本复制到我的项目中。
我认为在
signature_type="query"
的情况下,值被用作查询参数。根据您的问题,当您想将 OAuth1 用于 Apps Script 时,如何按如下方式转换您的 Python 脚本?
在此示例脚本中,假设使用了 OAuth1 for Apps Script。请注意这一点。
function myFunction() {
const BASE_URL = "...";
const CLIENT_KEY = "...";
const CLIENT_SECRET = "...";
const service = OAuth1.createService("sample")
.setConsumerKey(CLIENT_KEY)
.setConsumerSecret(CLIENT_SECRET)
.setParamLocation("uri-query")
.setAccessToken("", "");
const url = BASE_URL + "/user/v2/credentials/";
const response = service.fetch(url);
// console.log(response.getContentText()); // You can see the raw response value using this line.
const content = JSON.parse(response.getContentText());
const credentialId = content[0]["id"];
console.log(credentialId);
}
从
signature_type="query"
的 Python 脚本中,使用了 setParamLocation("uri-query")
。
我认为这个请求和你展示的Python脚本是一样的。但是,如果发生错误,请再次确认您的
BASE_URL
、CLIENT_KEY
和CLIENT_SECRET
的值。