前提・実現したいこと
GASからatompub API を通してLIVEDOOR BLOGにPOSTしたいのですが、
XMLの文法が間違っているらしくうまくいきませんでした。youtube動画を張り付けた投稿をしたいのですが、そこでエラーが出るようです。(同じXMLの書き方でもはてなブログには投稿できました。)
アドバイスよろしくお願いします。
('<iframe src="'+ url_embed +'" style="vertical-align:top;" width="560" height="315" frameborder="0" allowfullscreen></iframe>')の部分を削除すると投稿がうまくいくので、
この部分が問題だと思われます。使用できない記号などがあるのでしょうか。
調べてみてもわかりませんでした。
発生している問題・エラーメッセージ
Exception: Request failed for https://livedoor.blogcms.jp returned code 400. Truncated server response: Requested XML is invalid. (use muteHttpExceptions option to examine full response)
該当のソースコード
javascript
1function livedoor_Post(){ 2 3//ここからLIVEDOOR BLOGへの投稿 4var title = "記事タイトル"; 5var url1 = "https://www.youtube.com/watch?v=LjDFPT4xN_Q"; 6 7//youtube動画のURLを埋め込み用URLの形式に変更 8var url_embed = url1.toString().replace( 'watch?v=', 'embed/' ); 9var text = '<iframe src="'+ url_embed +'" style="vertical-align:top;" width="560" height="315" frameborder="0" allowfullscreen></iframe>' + '<BR/>'+'<BR/>'+'<BR/>'; 10var rawData = '<?xml version="1.0" encoding="utf-8"?>' + 11 '<service xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app">' + 12 '<collection href="https://livedoor.blogcms.jp/atompub/BLOGID/article">' + 13 '<title>'+ title + '</title>' + 14 '<content type="text/plain">' + text + '</content>' + 15 '</service>'; 16 17var options = { 18 'url':'https://livedoor.blogcms.jp/atompub/BLOGID/article', 19 'method': 'POST', 20 'body' : rawData, 21 'headers': { 22 'Authorization': 'Basic ' + Utilities.base64Encode("ID" + ":" + "PASS"), 23 'Content-Type': 'application/atom+xml' 24 } 25}; 26UrlFetchApp.fetch(url, options); 27}
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/30 11:44