GoogleAppsScript(GAS)からQiitaAPIを使ってQiita投稿記事を更新しました。その際のソースコードを備忘録として残します。
前回:GoogleAppsScript(GAS)からQiitaAPIを使ってQiita投稿記事(限定共有記事)を投稿する。
本記事の環境
※PCに環境構築を行う必要はありません。
WEBブラウザ(Google Chome)
Googleアカウント
使用技術
GoogleAppsScriptのみ。
事前準備
- Qiitaにて、「設定」から「アプリケーション」を選択する。
- 「個人用アクセストークン」を発行する。※私は読み書き権限両方を付けました。
- 発行した「個人用アクセストークン」をメモする。※後で入力します。
手順
- 以下の成果物をGoogleスプレッドシート/拡張機能/Apps Scriptにコピー&ペーストし、「アクセストークン」と「投稿記事タイトル」と「投稿記事ID」を書き換える。
- 「実行」ボタンを選択して、実行が終わるまで少し待つ。
- 初回は、承認、Googleアカウントへのログイン、リクエストの許可が求められる。
- 実行が終わったら実行ログを確認する。
- 実行ログに問題がなければQiitaの投稿記事を確認する。
所感
- Qiita記事の投稿、更新で処理に大きな違いはなく難しくなかった。
- GoogleAppsScript(GAS)からQiita記事を投稿、更新できたので、次回は自投稿記事のランキングを作成し自動更新させます。
成果物
// 全権限トークン
const TOKEN_ALL2 = "[発行したトークン]";
// 投稿記事タイトル
const ITEM_TITLE2 = "[投稿記事タイトル]";
// 投稿記事ID
const ITEM_ID = "[投稿記事ID]";
// 記事更新処理
function updateQiitaTest() {
const apiUrl = "https://qiita.com/api/v2/items/" + ITEM_ID;
const item_data = {
'body' : "# Example", // 投稿記事本文
'title' : ITEM_TITLE2, // 投稿記事タイトル
};
const headers = {'Authorization' : 'Bearer ' + TOKEN_ALL2};
const params = {
'method' : "patch",
'contentType' : "application/json",
'payload' : JSON.stringify(item_data),
'headers' : headers,
'muteHttpExceptions' : false
};
const response = UrlFetchApp.fetch(apiUrl, params);
if (response.getResponseCode() >= 300) {
Logger.log("記事更新失敗 : " + response.getContentText());
} else {
const obj = JSON.parse(response.getContentText());
Logger.log("記事更新成功 : title[" + obj.title + "]、url[" + obj.url + "]");
}
}