0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

InstagramのAPIを使ってハッシュタグ検索をする

Posted at

#1.前提
Instagram APIのビジネスIDとアクセストークンを持っていること
#2.概要
GoogleAppsScriptでInstagram APIを使い、ハッシュタグの投稿のリンクを取得すること

#3.やること1

ハッシュタグ名、取得数、最近の投稿か、人気の投稿かを決める
取り合いずハッシュタグ名は、「猫」、取得数は「10」で最近の投稿にする

function sample0(){
  // 取得するハッシュタグ名
  var query = "猫";
  // 取得する数
  var count = 10;
  // 最近やつを取得なら1、トップページなら0
  var flag_m = 1;
  // 投稿IDと投稿先のリンクをコンソールに出力する
  console.log(sample1(flag_m,query,count))
}

#4.やること2
api_idにビジネスIDを入れる
api_tokenにアクセストークンを入れる

function sample1(flag_m,query,count) {

  var api_id = "";
  var api_token = "";

  // ハッシュタグ名をハッシュタグIDに変換する
  var hash_id = sample3(query,api_id,api_token);
  // ハッシュタグIDで対象の投稿を取得する
  var list_t = sample2(hash_id,api_id,api_token,flag_m,count);

  // 取得数分だけ返す
  return list_t.slice(0,count);
}

#4.やること3
データをスクレイピングしてjsonでハッシュタグIDを返す

function sample3(query,api_id,api_token) {
  var URL = "https://graph.facebook.com/ig_hashtag_search?user_id="+ api_id +"&q="+ query +"&access_token="+ api_token;
  var response = UrlFetchApp.fetch(URL);
  var json = JSON.parse(response.getContentText());
  return json["data"][0]["id"];
}

#4.やること4
データをスクレイピングしてjsonで取得したデータを整形する

function sample2(hash_id,api_id,api_token,flag_m,count) {

  var c = 0;
  var URL = "";
  var Next_URL = "";
  var response = "";
  var json = "";
  var list_re = [];

  if(flag_m < 1){
    
    URL = "https://graph.facebook.com/v12.0/"+ hash_id +"/top_media?user_id="+ api_id +"&fields=permalink,media_url&access_token="+ api_token;
  
  }else{
    
    URL = "https://graph.facebook.com/v12.0/"+ hash_id +"/recent_media?user_id="+ api_id +"&fields=permalink,media_url&access_token="+ api_token;
  
  }

  while(c < count){

    if(Next_URL == ""){

     response = UrlFetchApp.fetch(URL);         
     json = JSON.parse(response.getContentText());

    }else{

     response = UrlFetchApp.fetch(Next_URL);         
     json = JSON.parse(response.getContentText());

    }
    
    for(let i = 0; i < json["data"].length; i++){
      
      list_re.push([json["data"][i]["id"],json["data"][i]["permalink"]]);
    }

    c += json["data"].length;

    Next_URL = json["paging"]["next"];
  }

  return list_re;
}

上で記載したファンクションをGoogleAppsScriptのエディタ内に入れて
sample0を実行したらコンソールにURLとIDが出力される

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?