在 Google 脚本中创建 Python 等效请求

Creating a Python Request Equivalent in Google Script

我正在尝试使用 Google 脚本将视频 url 上传到 Vimeo。我已经在我的 Python/Django 应用程序中成功设置了以下内容:

url = 'https://api.vimeo.com/me/videos'
headers = {'Authorization': 'bearer xxx',
           'Content-Type': 'application/json',
           'Accept': 'application/vnd.vimeo.*+json;version=3.4'}

data = {'upload': {'approach': 'pull',
        'link': 'https://video.mp4'}}

requests.post(url, headers=headers, data=json.dumps(data))

据我所知,我尝试在 Google 脚本中创建等效项,如下所示:

var url = 'https://api.vimeo.com/me/videos'
var headers = {
'Authorization': 'bearer xxx', 'Content-Type' : 'application/json', 'Accept' : 'application/vnd.vimeo.*+json;version=3.4'}

var data = {'upload' :{ 'approach' : 'pull','link' : 'https://video.mp4'}}
var options = {
  headers:headers,
  data:data,
}

var response = UrlFetchApp.fetch(url,options)

我收到了成功的回复,但我似乎收到了我帐户中现有视频的列表,但没有上传任何视频。谁能提供有关如何重新配置​​我的 Google 脚本设置的任何见解。谢谢!

您的 Python 代码显示 POST 请求,但 Apps 脚本 UrlFetchApp.fetch() 请求未指定方法,因此它默认为 GET 请求。 要使其成为 POST,请在选项中包含 method: 'post'

此外,正在发布的数据应在选项中标记为payload

var url = 'https://api.vimeo.com/me/videos'
var headers = {
'Authorization': 'bearer xxx', 'Content-Type' : 'application/json', 'Accept' : 
'application/vnd.vimeo.*+json;version=3.4'}

var data = {'upload' :{ 'approach' : 'pull','link' : 'https://video.mp4'}}
var options = {
  method: 'post', // Add this line
  headers:headers,
  payload: JSON.stringify(data), // Change this line. 
}

var response = UrlFetchApp.fetch(url,options)

参考: