2013-08-21 2 views
2

Google Apps 스크립트의 API를 사용하여 SendHub 계정에 그룹 &을 추가하려고합니다. 성공적으로 GET 요청을 만들고 JSON 데이터를 아무 문제없이 다시 얻을 수 있습니다. 내가 400을받은 객체를 추가하기 위해 POST 요청을 시도하면 & 401 데이터를 준비하는 방법에 따라 401 오류가 발생합니다. 옵션이 형성되는 객체 방식을 변화에Google Apps Script POST 요청 UrlFetchApp

var headers = { 
    "Content-type" : "application/json" 
    }; 
    var data = { 
    "name" : "Me Testing", 
    "slug" : "me-testing", 
    "text_to_subscribe" : true 
    }; 
    var payload = { 
    "data" : Utilities.jsonStringify(data) 
    }; 
    var options = { 
    "method" : "post", 
    "headers" : headers, 
    "payload" : payload 
    }; 
    var url = "https://api.sendhub.com/v1/groups/?username=USERNAMEWORKSFORGETREQUESTS&api_key=KEYWORKSFORGETREQEUSTS"; 
    var response = UrlFetchApp.fetch(url, options); 

내가 만든 여러 가지 시도를하고 결과는 400, 401 또는 405 오류에 따라 다릅니다 :

이 400 오류를 가져옵니다. SendHub API에 대한 올바른 POST 요청을 작성하는 방법에 대해 혼란스러워합니다. here

이 게시물 바로 뒤에서 작업하게되었습니다. 여기 내가 한 일이 있습니다 :

var data = { 
    "name" : "Me Testing", 
    "slug" : "me-testing", 
    "text_to_subscribe" : "true" 
    }; 
    var payload = JSON.stringify(data); 
    var options = { 
    "method" : "POST", 
    "contentType" : "application/json", 
    "payload" : payload 
    }; 
    var url = "https://api.sendhub.com/v1/groups/?username=GOODUSERNAME&api_key=GOODAPIKEY"; 
    var response = UrlFetchApp.fetch(url, options); 
+0

질문에 답하고 동의로 표시하십시오. 감사! –

답변

2

나는 내 질문의 편집 부분에 답을 남겼습니다. 세 가지 변경 중 어느 것이 작동하게 만들었는지 확실하지 않지만 작동 한 예제 코드는 남겨 두었습니다.

var data = { 
    "name" : "Me Testing", 
    "slug" : "me-testing", 
    "text_to_subscribe" : "true" 
    }; 
    var payload = JSON.stringify(data); 
    var options = { 
    "method" : "POST", 
    "contentType" : "application/json", 
    "payload" : payload 
    }; 
    var url = "https://api.sendhub.com/v1/groups/?username=GOODUSERNAME&api_key=GOODAPIKEY"; 
    var response = UrlFetchApp.fetch(url, options); 
1

당신이 나를 위해 작동하지 않았다 게시 된 솔루션이 나를 위해 작동합니다

function example() { 

    var payload = { 
    "api_key" : "SFS1234SDF", 
    "list_id" : "4" 
    }; 

    var options = { 
    "method" : "post", 
    "payload" : payload 
    }; 

    var url  = "http://my-url.com"; 
    var response = UrlFetchApp.fetch(url, options); 

    Logger.log(response); 

    return response.getContentText(); 

} 

는보기를 사용 -> 디버깅 옵션의 로그를 취합니다.

관련 문제