
ChatGPT(OpenAI)を使ってブログ記事を書いてみたいと考えています…難しいですか?
2022年末から話題のOpenAIの「ChatGPT」。
高クオリティーで答えを返してくる「AI」に腰を抜かした方も多いと思います。
記事を書くこと(ブロガーやライターなど)を仕事にしている方の中に、「このChatGPTを使って記事を書けないのか?」を考えた方も多いはず…
私自身そんな一人です…
そこで今回の記事では「Googleドキュメント(GAS)にOpenAIのChatGPTを導入して、記事を自動で作る方法」をまとめていきたいと思います。

この記事を読むことでパソコンが苦手な方でも、誰でもかんたんにAIを使ってブログ記事を作れるようになります。使いこなせば非常に便利な機能になりますので、ぜひ試してみて下さい。※ただし使う上で注意点もあるので最後にまとめています。
- ChatGPTを活用してブログ記事の見出し+本文を効率よく作る方法
- OpenAiのAPIの取得方法
- Googleドキュメント(GAS)を使った設定
- 記事の作成方法(1記事30秒ほどで終わります)
- とはいえ注意点

Twitterアカウント @cryppen_crypto
ChatGPT(OpenAi)の APIキーを入手する


それでは早速解説を始めていきます。記事作成までは10分ほどで完了します。
まずはじめにOpenAiのサイトにアクセス.
すでにChatGPTを使った方は【ログイン】をしてください。まだお持ちでない方はメールアドレス登録で、簡単にChatGPTをつかえるOpenAiアカウントを作成できるので登録をしましょう。

ログインやサインアップにはGoogleアカウントを使うとスムーズです。

ログイン出来たら右上【Personal】をクリック。

【View API keys】をクリックします。

【Create new secret key】をクリック。

赤丸で記した【コピー】をクリック。

OKボタンを押すと見れなくなってしまうので何かにコピーしておきましょう。

ここまでが【ChatGPT(OpenAi)の APIキーを入手する】となります。この後はGoogleドキュメント(Google App Script 通称GAS)を使った設定へと進んでいきます。
Googleドキュメント(GAS)を使った設定
ここではGoogleドキュメントをコードで動かし記事を生成する流れを解説していきます。

ここが難しそうに見えますが、コードが書けない人でもコピペでできます。迷わず進んでいきましょう!
新規ドキュメントを開きます。【拡張機能】をクリック→【App Script】をクリックします。

【初めから入力されているコード】を削除します。まっさらの状態へ。

以下のコードをコピーしてApp Scriptにペーストします。
// メニューの名前
function onOpen() {
DocumentApp.getUi().createMenu("GPT3 MAGIC")
.addItem("Generate Ideas", "generateIdeas")
.addItem("Generate Paragraph", "generateParagraph")
.addItem("Generate Image", "generateImage")
.addToUi();
}
// ****メニューの名前はここまで****
// APIなど設定
var apiKey = "ここにAPIキーを入れる";
var model = "text-davinci-003"
// ****設定はここまで****
// メニューのプログラム設定1
function generateIdeas() {
var doc = DocumentApp.getActiveDocument()
var selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText()
var body = doc.getBody()
var prompt = "記事のアイデアを5つ出してください。" + selectedText;
temperature= 0
maxTokens = 2060
const requestBody = {
"model": model,
"prompt": prompt,
"temperature": temperature,
"max_tokens": maxTokens,
};
const requestOptions = {
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer "+apiKey
},
"payload": JSON.stringify(requestBody)
}
const response = UrlFetchApp.fetch("https://api.openai.com/v1/completions", requestOptions);
var responseText = response.getContentText();
var json = JSON.parse(responseText);
Logger.log(json['choices'][0]['text'])
para = body.appendParagraph(json['choices'][0]['text'])
}
// ****メニューのプログラム設定1終わり****
// メニューのプログラム設定2
function generateParagraph() {
var doc = DocumentApp.getActiveDocument()
var selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText()
var body = doc.getBody()
var prompt = "記事を詳しく書いてください。" + selectedText;
temperature= 0
maxTokens = 2060
const requestBody = {
"model": model,
"prompt": prompt,
"temperature": temperature,
"max_tokens": maxTokens,
};
const requestOptions = {
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer "+apiKey
},
"payload": JSON.stringify(requestBody)
}
const response = UrlFetchApp.fetch("https://api.openai.com/v1/completions", requestOptions);
var responseText = response.getContentText();
var json = JSON.parse(responseText);
Logger.log(json['choices'][0]['text'])
para = body.appendParagraph(json['choices'][0]['text'])
}
// ****メニューのプログラム設定2終わり****
// メニューのプログラム設定3(画像)
function generateImage() {
var doc = DocumentApp.getActiveDocument()
var selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText()
var body = doc.getBody()
temperature= 0
maxTokens = 2000
var prompt2 = "Generate images for " + selectedText;
const requestBody2 = {
"prompt": prompt2,
"n": 1,
"size": "512x512"
};
const requestOptions2 = {
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer "+apiKey
},
"payload": JSON.stringify(requestBody2)
}
const response2 = UrlFetchApp.fetch("https://api.openai.com/v1/images/generations", requestOptions2);
var responseText = response2.getContentText();
var json = JSON.parse(responseText);
var url1=json['data'][0]['url']
body.appendImage(UrlFetchApp.fetch(url1).getBlob());
}
// ****メニューのプログラム設定3(画像)終わり****
コードをペーストしたら
14行目の「””」ダブルクオーテーションの中に先ほどOpenAiで入手した【APIキー】を入れます。

ちなみにChatGPTへの指示内容を日本語の部分を調整することで変化をつけることも可能です。
今回は「ブログ記事を書くことを目的」としているので何もいじらずに進んでください。

Google App Script(GAS)で設定

コードを入力しAPIキーをペーストしたら一度①【保存】をクリック。他のボタンがクリックできるようになるので②【実行】をクリックしてください。

【権限を確認】をクリック

自分のアカウントを選択。

なんかこわい表示に見えますが、大丈夫です。左下の小さい表示の【詳細】をクリック。

開くと下に【ChatGPT(安全ではないページ)に移動】をクリックします。

またしても怖い表示が出ますが、進んでいきます。【許可】をクリック。

ここまででOpenAiのAPIキー+Googleドキュメント(GAS)の設定は終わりとなります。
次は記事作成へと進んでいきます。
AIを使った記事作成の仕方(カンタンです!)


ここまでお疲れさまです。あとは簡単に進みますのでもう少し頑張りましょう♪
Googleドキュメントに戻り上の表示の中に【GPT3MAGIC】が表示されます。ここを使って記事を自動生成していくわけです。流れは以下の通り早くて1記事30秒ほどで完了します。
- 記事のタイトル(キーワード)を作る
- 記事タイトルから自動で見出しが出来上がる
- 見出しから記事の内容が出来上がる
まずはブログ記事の「タイトルメインキーワード」をドキュメントに打ち込んでみましょう。
今回は【イーサリアムとは】と入力します、このタイトルキーワードを選択して【GPT3MAGIC】→【Generate ideas】をクリックします。

すると以下のように見出しが5つ生成されます。今度はこの5つの見出しを選択して【GPT3MAGIC】→【Generate Paragraph】をクリックします。

すると書く見出しごとに文章が生成されます。(時間帯にもよりますが、AIの生成に30秒くらいかかります)



いかがでしょうか?まだ不十分なところはありますが、十分普段の記事作成を助ける、生産性を上げてくれるレベルのものは出来上がっています。
最後にAIによる記事生成の注意点

ここまでお読みになっていただきありがとうございます。最後に今回の記事で1番のポイントをお伝えします。
最後に注意点として
おそらくGoogleはAI生成による記事作成をSEO上位に表示にならないように「対策をとっている」と思います。最悪サイトがペナルティーを受けるなんてことも可能性としてあるので、AIを使った記事作成は「自己責任で」お願いいたします。
実際にChatGPT(GPT3)のみで作った記事がどの程度SEO評価されるのか、インデックスされるのかを検証したユーザーもいます(もちろん結果は良くない)
あとすでにChatGPDを使った方はわかると思うのですが、内容が「確実にあっているか?」「間違っていないか?」の確認は必ず必要です。
ですが後から記事を加筆修正することにより、そのあたりをぼかすことができるかもしれません…私自身も今後、検証をしながら進めてていきたいと考えています。

とにかく単品で人の手を加えずに記事を出すには、いまだに無理があるのが現状です。使う際にはしっかり文章を確認して、ある程度の加筆修正や記事内容の検証が必要となります。
ここまでお読みいただきありがとうございました。今回の記事があなたの何かのお役に立てれば幸いです。
コメント