LoginSignup
0
0

More than 1 year has passed since last update.

GASからInstagram Graph APIを利用してGoogle Driveの画像をアップロードする

Posted at

この記事の読者

  • Google Workspaceを使用してInstagramに投稿したい方
  • Instagramをビジネスアカウントを利用して自動運用を行いたい方
  • この記事を楽しく読める人

きっかけ

自分の運営している団体でInstagramのアカウントを全員にログインさせるのはセキュリティ的にも怖かったので、Google Form経由でアップロードさせる方法に変更

前提条件

  • 投稿する写真をGoogle Driveに保存しており、また、公開アクセスになっていること
  • Instagramをビジネスアカウントで運用していること

結論

公式リファレスンス通りにUrlfetchApp.fetch()でPOSTを実行

詳細

  1. 以下のリンク先の通りにInstagram Graph APIのユーザーIDとトークンを取得する。なお、バージョンは最新のもので良い
    https://to-inc.co.jp/socialbook/?p=2189

  2. 写真のリンクを準備する。ドライブのリンクはhttps://drive.google.com/uc?id="ファイルのID"の形にする。詳しくは以下のリンクを参照。
    https://qiita.com/rot-z/items/299ac40361690c51ce1d

  3. 以下のコードを記述。公式リファレンス通りに2回のPOSTを実行する。
    https://developers.facebook.com/docs/instagram-api/guides/content-publishing

main.gs
function postOnInstagram(POST_LINK, POST_CAPTION) {
  //Configure ID and TOKEN. It is set on properties.
  const INSTAGRAM_ID = PropertiesService.getScriptProperties().getProperty("INSTAGRAM_ID");
  const INSTAGRAM_TOKEN = PropertiesService.getScriptProperties().getProperty("INSTAGRAM_TOKEN");

  //First Post
  let image_url = POST_LINK;
  let caption = POST_CAPTION;
  let payload1 = {
    'access_token': INSTAGRAM_TOKEN,
    'image_url': image_url,
    'caption': caption,
  };
  let options1 = {
    'method': 'post',
    'payload': payload1
  };
  const response1 = UrlFetchApp.fetch("https://graph.facebook.com/v16.0/" + INSTAGRAM_ID + "/media", options1);

  //Secound Post
  let id = JSON.parse(response1).id;
  let payload2 = {
    'access_token': INSTAGRAM_TOKEN,
    'creation_id': id,
  };
  let options2 = {
    'method': 'post',
    'payload': payload2
  };
  const response2 = UrlFetchApp.fetch("https://graph.facebook.com/v16.0/" + INSTAGRAM_ID + "/media_publish", options2);
};

let post_caption = ""; //投稿の本文を記入
let post_link = ""; //投稿する写真のリンクを
postOnInstagram(post_link,post_caption)

利点

Google Workspaceを利用しているユーザーにはとても利便性が高い。

改善すべきポイント

  • Google Driveのファイルのアクセス権を一時的に公開にする必要がある
  • 複数の写真とビデオの投稿に対応していない。(今後対応させる予定)

その他

  • 後ほどライブラリを公開予定
  • GitHubにソースコードを公開予定

筆者の戯言

これでだいぶ無駄業務が減ったのでよし。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0