我到處尋找並找不到此問題。我從PeopleSoft轉到.NET,最近纔開始學習JavaScript,我試圖使用Google Apps腳本向Slack發送電子郵件通知消息。Google Apps腳本UrlFetchApp未正確編碼JSON數組
在我看來,GAS的UrlFetchApp沒有正確處理數組。下面我沒有包含所有的Slack API選項。在這裏,我如何構造的有效載荷,其中「附件」包含所討論的陣列:
var payload =
{
// ...
"username": "Test webhook Bot",
"attachments": [
{
"pretext": "pre-hello1",
"text": "text-world1"
},
{
"pretext": "pre-hello2",
"text": "text-world2"
}
]
// ...
};
var options =
{
"method" : "post",
"payload" : payload,
"contentType":"application/json"
};
var response = UrlFetchApp.fetch(requestURL, options);
當測試我發現,職位是存在的,但鬆弛無視該消息的附件部分。我用下面的檢查傳出POST:
var response = UrlFetchApp.getRequest(requestURL, options);
而且我發現看執行談話我發現,JSON數組我載荷沒有被編碼我預期的方式。在執行之前,我清楚地看到格式正確的數組。
[16-01-26 07:26:39:050 MST] UrlFetchApp.getRequest([https://slack.com/api/chat.postMessage,{方法=交,有效載荷= {附件= [{藉口=預hello1,文本=文本-world1},{由頭=預hello2,文本=文本world2}],用戶名=測試網絡掛接博特},則contentType =應用/ JSON}])[0秒]
但什麼實際發送,代替附件陣列的是:%5BLjava.lang.Object; @ 37f01fb3
[16-01-26 07:26:39:051 MST] Logger.log([測試:https://slack.com/api/chat.postMessage?attachments=%5BLjava.lang.Object;@37f01fb3&username=Test+webhook+Bot,[])[0秒]
我試圖尋求幫助之前,盡我所能搜索了這一點,但我不知道如果我現在不是損失。有誰知道我在哪裏可以找到我失蹤的東西?謝謝。
我發現,如果我使用JSON.stringify(有效載荷)在我的選項對象的數組完整的POST。 –
您是否找到解決方案? –
@SandyGood:我確實得到了答案。我剛剛發佈了它以及根據我以前的評論瞭解到的其他信息。感謝您的檢查。 –