3
4

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.

10分でできる!Twitterの検索結果をSpreadsheet出力方法

Last updated at Posted at 2021-01-09

#手順

  1. Twitter Developerの設定
  2. Google App Scriptの記述

1. Twitter Developerの設定

1.Twitter Developer Portal を開きます。

2.プロジェクトを作成する
twitter portal 1.png

3.プロジェクト作成完了後の API keyAPI secret key をコピーする
twitter portal 2.png

(2022年12月追記)
上記の設定に加えて、Elevated Accessの利用申請が必要になります。

2. Google App Scriptの記述

1.出力したいスプレッドシートから、ツール > スクリプトエディタ を開く

スクリーンショット 2021-01-09 14.20.25.png

2.以下のようにスクリプトを記述する

スクリーンショット 2021-01-09 14.34.42.png

以下をコピーして貼り付けてください。
一部修正が必要になります。

  • オレンジ枠の api_key は上でコピーした API key を貼り付けてください
  • オレンジ枠の api_secret_key は上でコピーした API secret key を貼り付けてください
  • 緑枠の search_keyword は検索したいキーワードを入力してください
  • 青枠の spreadsheetId は出力したいスプレッドシートのIDを入力してください

 (https://docs.google.com/spreadsheets/d/1U*************U4 の最後のまとまりがIDです)

  • 8行目のmasterにはインポートしたいシート名を入力してください
collectLatestTweets.js
var api_key = 'bv*****************KS';
var api_secret_key = 'Of******************************lx';
var search_keyword = 'NLP -RT -rt';

function setupSheet() {
  var spreadsheetId = '1U******************************U4';
  var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  var sheet = spreadsheet.getSheetByName('master')
  return sheet;
}

function collectLatestTweets() { 
  var blob = Utilities.newBlob(api_key + ':' + api_secret_key);
  var credential = Utilities.base64Encode(blob.getBytes());
  var formData = {
    'grant_type': 'client_credentials'
  };
  var basic_auth_header = {
    'Authorization': 'Basic ' + credential
  };
  var options = {
    'method': 'post',
    'contentType': 'application/x-www-form-urlencoded;charset=UTF-8',
    'headers':  basic_auth_header,
    'payload': formData,
  };
  var oauth2_response = UrlFetchApp.fetch('https://api.twitter.com/oauth2/token', options);  
  var bearer_token = JSON.parse(oauth2_response).access_token; 
  var bearer_auth_header = {
    'Authorization': 'Bearer ' + bearer_token
  };
  var search_response = UrlFetchApp.fetch(
    'https://api.twitter.com/1.1/search/tweets.json?q=' + search_keyword + '&lang=ja&result_type=recent&count=100',
    { 'headers': bearer_auth_header });
  result = JSON.parse(search_response);
  var sheet = setupSheet();

  result.statuses.forEach(function(status) {
    var rowData = [status.user.id_str, status.user.name, status.created_at, status.text];
    sheet.appendRow(rowData);
  });
}

出力確認

1.実行する関数を collectLatestTweets に変更して、実行を押します。

スクリーンショット 2021-01-09 14.44.46.png

2.スプレッドシートに出力されることが確認されます。
スクリーンショット 2021-01-09 14.47.07.png

以上です。

備考

  1. GASを実行する際に権限を承認する必要があります。

ポップアップで出てくるので、許可を押してください。

Group 1.png

3
4
2

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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?