スキルアップを始める!

【Instagram自動投稿】InstagramグラフAPIとは?|ビジネスとクリエイターのための設定マニュアル(Part2)

Instagram(インスタグラム)
Screenshot
Instagram(インスタグラム)
この記事は約6分で読めます。

※記事中に広告情報を含みます。

\ワードプレスのスキルアップはこちら!/ WordPress入門読本

前回の続きです。この記事では、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の投稿をさらにカスタマイズする方法を学びましょう。

つづく。

URLをコピーしました!