构建UrlFetchApp请求以从ChinaBrands API获取访问令牌

时间:2018-04-16 19:03:18

标签: api google-apps-script google-sheets

"{"status":0,"msg":"Requested info is empty","errcode":10006}"

请参阅下面附带的文档API屏幕截图链接。 我正在尝试使用谷歌应用程序脚本连接ChinaBrands API。 我收到的错误是df["vehicle_make_category"] = None df.loc[df["vehicle_make"].isin(luxury), "vehicle_make_category"] = "luxury" df.loc[df["vehicle_make"].isin(non_luxury), "vehicle_make_category"] = "non_luxury"

请参阅此图片:获取AccessToken的文档API:

See this Image : Documentation API to get AccessToken

1 个答案:

答案 0 :(得分:1)

文档有点误导。您需要使用Content-Type: application/x-www-form-urlencoded发出POST请求。 request数据字段应为字符串,其中数据为JSON格式。我猜根据您使用的语言/库,您可能需要在发出请求之前对JSON数据进行URL编码。

结果请求应如下所示:

POST https://gloapi.chinabrands.com/v2/user/login
...
Accept: */*
Content-Type: application/x-www-form-urlencoded

signature=<md5 of string containing data in json + client secret>&data=%7B%22email%22%3A+%22name%40example.com%22%2C+%22password%22%3A+%2222password1%22%2C+%22client_id%22%3A+%1337%22%7D

带有请求库的Python 3示例:

url = "https://gloapi.chinabrands.com/v2/user/login"

data = {...}

json_data = json.dumps(data)

signature = md5((json_data + client_secret).encode('utf')).hexdigest()

response = requests.post(url, data={'signature': signature, 'data': json_data})