2016-10-08 3 views
0

Google Apps Calc 스크립트의 PushBullet API를 사용하여 모바일에서 SMS를 보내려고합니다.PushBullet Google Apps Script의 SMS JSON 형식

는 스크립트 (편집 됨 인증 데이터) 내가 400를 얻을로

function send_SMS() { 
    Logger.log("send_SMS start"); 
    var options = {  
    "method" : "post", 
    "Content-Type" : "application/json", 
    "headers" : { "Authorization": "Basic aaaaaaaaaaaaaaaaaa" }, 
    "payload" : {  
     "push" : { 
     "type" : "messaging_extension_reply", 
     "package_name" : "com.pushbullet.android", 
     "source_user_iden" : "iiiiiiiiiiiii", 
     "target_device_iden" : "iiiiiiiiiiiiiiidddddddddd", 
     "conversation_iden" : "0999999999", 
     "message" : "TestSMS" }, 
     "type" : "push" 
    } 
    }; 
    var push_bullet_url = "https://api.pushbullet.com/v2/ephemerals"; 
    Logger.log(options); 
    UrlFetchApp.fetch(push_bullet_url, options); 
    return; 
} 

내가 어떤 JSON 포장 오류를 만드는 것입니다 "JSON 본문을 구문 분석하지 못했습니다."

문서가 켜져 https://docs.pushbullet.com/#send-sms

나는

curl --header "Access-Token: ttttttttttttttt" --header "Content-Type: application/json" --data-binary "{ """push""": { """type""": """messaging_extension_reply""", """package_name""": """com.pushbullet.android""", """source_user_iden""": """iiiiiiiiiiiiiiii""", """target_device_iden""": """iiiiiiiiiiiiiiiiiddddddddddddd""", """conversation_iden""": """0999999999""", """message""": """TestSMS""" }, """type""": """push"""}" --request POST https://api.pushbullet.com/v2/ephemerals 
(I 탈출 "" "한 하나) 문제없이 Windows 및 명령 작품에 CURL 시도3210

user_ident, device_ident를 얻고 테스트 "메모"메시지를 보내려면 Google Apps 스크립트를 작성했습니다. 문제는 스크립트의 JSON 페이로드에서 문자열 인용 부호를 올바르게 포맷했기 때문일 수 있습니다.

답변

0

결국 대답은 간단했습니다!

옵션 JSON의 페이로드 부분은 문자열이어야합니다. 당신은 그것을 할 수있는 (적어도) 두 가지 방법 : 당신은 캐릭터 라인 화 할 수

:

var options = { 
    "method" : "post", 
    "headers" : { "Authorization": "Basic "+Utilities.base64Encode(PushToken+":"); }, 
    "payload" : JSON.stringify({ 
     "push" : { 
     "type" : "messaging_extension_reply", 
     "package_name" : "com.pushbullet.android", 
     "source_user_iden" : "iiiiiii", 
     "target_device_iden" : "iiiiiiiidddddd", 
     "conversation_iden" : "0999999999", 
     "message" : "Test SMS" }, 
     "type" : "push" }) 

아니면 문자열로 페이로드를 쓸 수 있지만, 한 줄에 있어야한다

"payload" : '{ "push" : { "type" : "messaging_extension_reply", "package_name" : "com.pushbullet.android", "source_user_iden" : "iiiiii", "target_device_iden" : "iiiiiiiidddddd", "conversation_iden" : "099999999", "message" : "Test SMS" }, "type" : "push" }' 

가장 중요한 것은 http://httpresponder.com/과 같은 서비스를 사용하여 보내는 요청을보고 디버깅 할 수 있으며 JSON이 제대로 구성되었는지 확인할 수 있습니다.

관련 문제