簡體   English   中英

帶有Freshdesk API錯誤的Google App API

[英]Google app api with freshdesk api error

在使用Google App腳本中的freshdesk API時遇到錯誤

"{"code":"invalid_content_type","message":"Content-Type header is set to . It should be set to application/json"}"

用於此的代碼

function hd_getTickets(){//using v2
    var API_KEY = 'xxxxxxxxxxxxxx';
    var headers = {'Content-type': 'application/json','Authorization': 'Basic ' + Utilities.base64Encode(API_KEY + ':X')    };
    var data = {  "query":"\"priority:3\"" };
    var ENDPOINT = 'https://xxxxxxx.freshdesk.com/api/v2'; 
    var url = ENDPOINT + '/search/tickets';  
    var options = {      'method': 'get', muteHttpExceptions: true,'headers': headers,'payload' : JSON.stringify(data)};
    var response = UrlFetchApp.fetch(url, options);
}

更改端點並從選項中刪除有效負載可以正常工作,因此假設授權和標頭都可以

var url = ENDPOINT + '/tickets';  
var options = {'method':'get','headers':headers, muteHttpExceptions: true};

使用郵遞員這有效

https://xxxxxxx.freshdesk.com/api/v2/search/tickets?query="priority:3"

標頭設置為

Content-Type:application/json
Authorization:Basic xxxxxxxxxxxxxxxx

您正在使用選項中的Payload變量將GET請求發送到API。 我認為有效載荷用於POST請求。

使用查詢參數構造URL,然后將其發送而無需有效負載。 例如:“ https://domain.freshdesk.com/api/v2/search/tickets?query= “ priority:3”“

在此處查看詳細信息: 帶有請求正文的HTTP GET Freshdesk API文檔: https : //developers.freshdesk.com/api/#filter_tickets

發現兩個問題1)網站不支持基於有效負載的get。 2)Google應用不支持url中的特殊字符。

將參數添加到原始url並編碼雙引號即可。

  var ENDPOINT = 'https://xxxxxx.freshdesk.com/api/v2';   
  var query ='query='+encodeURIComponent("\"priority")+":1"+encodeURIComponent("\"");
  var url = ENDPOINT + '/search/tickets?'+query;  
  var options = {'method': 'get', muteHttpExceptions: true,'headers': headers}; 
  var response = UrlFetchApp.fetch(url, options);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM