前回の続きです。この記事では、Google Apps Script(GAS)を使ってInstagramに投稿する方法をステップバイステップで説明します。
必要なもの
- InstagramビジネスアカウントのID
- アクセストークン
- 必要なアクセス許可
必要なアクセス許可:
instagram_basic
instagram_manage_insights
instagram_content_publish
InstagramグラフAPI:
リクエストを処理できませんでした - Meta for Developers
コンテナIDを取得する
まず、Instagramに投稿するために、メディアコンテナを作成します。
const instaBusinessId = 'your_instagram_business_account_id';
const accessToken = 'your_access_token';
function createMediaContainer(mediaUrl, caption, mediaType) {
const url = `https://graph.facebook.com/v17.0/${instaBusinessId}/media`;
const postData = {
image_url: mediaUrl,
caption: caption,
media_type: mediaType
};
const options = {
method: 'POST',
contentType: 'application/json',
headers: {
'Authorization': 'Bearer ' + accessToken
},
payload: JSON.stringify(postData)
};
const response = UrlFetchApp.fetch(url, options);
const data = JSON.parse(response.getContentText());
if (data.id) {
console.log(`コンテナ作成成功`);
return data.id;
} else {
console.error('コンテナ作成失敗');
return null;
}
}
const mediaUrl = 'https://XXXXXXXXX/XXXXXX.jpg';
const caption = '#helloInstagram';
const mediaType = '';
const containerId = createMediaContainer(mediaUrl, caption, mediaType);
メディアをInstagramに投稿する
次に、作成したメディアコンテナをInstagramに投稿するための関数を作成します。
function publishMedia(containerId) {
const url = `https://graph.facebook.com/v17.0/${instaBusinessId}/media_publish`;
const postData = {
creation_id: containerId,
access_token: accessToken
};
const options = {
method: 'POST',
contentType: 'application/json',
payload: JSON.stringify(postData)
};
const response = UrlFetchApp.fetch(url, options);
const data = JSON.parse(response.getContentText());
if (data.id) {
console.log(`投稿成功`);
return data.id;
} else {
console.error('投稿失敗');
return null;
}
}
if (containerId) {
publishMedia(containerId);
}
url
変数には、Instagramのメディア投稿エンドポイントのURLが設定されています。instaBusinessId
はInstagramのビジネスアカウントIDです。v17.0
はAPIのバージョン番号です。
投稿を検証する
公開した投稿を検証するための関数を作成します。
// 投稿を検証する関数
function verifyPost(postId) {
const url = `https://graph.facebook.com/v17.0/${postId}?fields=id,caption,media_type,media_url,permalink,timestamp&access_token=${accessToken}`;
const response = UrlFetchApp.fetch(url);
const data = JSON.parse(response.getContentText());
if (data.id) {
console.log(`投稿ID: ${data.id}`);
console.log(`キャプション: ${data.caption}`);
console.log(`メディアタイプ: ${data.media_type}`);
console.log(`メディアURL: ${data.media_url}`);
console.log(`パーマリンク: ${data.permalink}`);
console.log(`タイムスタンプ: ${data.timestamp}`);
} else {
console.error('投稿の検証に失敗しました。');
}
}
// 投稿を検証します
if (containerId) {
const postId = publishMedia(containerId);
verifyPost(postId);
}
グラフエクスプローラの利用
Facebookのグラフエクスプローラツールを使って、Instagram APIリクエストをテストすることもできます。このツールを使うと、Instagram APIに関する実験を行うためのUIを提供し、アクセス許可を選択したり、GET、POST、DELETEメソッドをテストしたりできます。
リクエストを処理できませんでした - Meta for Developers
まとめ
このガイドでは、GASを使ってInstagramに投稿する方法をステップバイステップで説明しました。各ステップで、必要な情報を取得し、メディアコンテナを作成し、メディアを投稿し、投稿を検証する方法を紹介しました。これにより、Instagramアカウントの管理がより簡単になります。
次のステップとして、InstagramグラフAPIの詳細なドキュメントを参照し、Instagramの投稿をさらにカスタマイズする方法を学びましょう。
つづく。