Google Apps Script를 사용하여 내일 날씨 자동 트윗

참고로 한 기사


  • htps : // 코 m / 오징어 / / ms / 1d 33c26559 e c56 03
  • htps : //가 되어-t. 이 m/가 s-아피우아테ぇr/
  • htps : // 우우비 rdp 로g 라민 g. 테 ch / 아 r ゔ ぇ s / 274
  • htps : // 이 m / h 쓰레기 / ms / 1 / 2에서 200f731에 5에 f374
  • htps : // 코 m / 유타 / ms / b8106 푸 bd5 아 1 2 0 cd34

  • GAS 스크립트를 작성하여 일기 예보를 가져옵니다.


    function getWeather(){
      var url = "http://weather.livedoor.com/forecast/webservice/json/v1?city=130010";
      result = UrlFetchApp.fetch(url); //WebAPIから情報取得
      var retw = result.getContentText(); //テキストだけ抜き出す
      var retjson = JSON.parse(retw); //JSON形式データを配列に格納
      var statement = "明日の天気("+ retjson.forecasts[1].date + ") - " + retjson.forecasts[1].telop; 
         //明日の日付と天気だけ抜き出す
      return statement;
    }
    

    LiveDoor에서 제공하는
    「Weather Hacks(기상 데이터 전달 서비스) ぇ tp // 우아아테 r. 아오오오 r. 이 m/우아아테ぇr_는 cks/ 」를 이용합니다
    (상용 빼기라는 조건으로 무료 이용 가능, 응답이 JSON 형식)
    스크립트를 작성하면 파일 → 프로젝트 속성보다 스크립트 ID를 삼가 둡니다.

    Twitter Application Management로 앱 만들기



    htps : // 아르 ps. 라고 r. 코m/

    Name과 description은 무엇이든 좋고, website도 자유롭습니다 (자신은 bot로 하는 트위터 계정의 홈 URL을 넣었습니다)
    Callback URLs만 지정https://script.google.com/macros/d/[Script ID]/usercallback(이전에 대기 한 스크립트 ID 입력)
    Create My Twitter Application하고,
    · Consumer Key (API Key)
    · Consumer Secret (API Secret)
    삼가해라.

    bot 본체 만들기


    var API_KEY = '****';
    var API_SECRET = '****';
    /* サービスの設定 */
    function getService() {
      return OAuth1.createService('Twitter')
          .setAccessTokenUrl('https://api.twitter.com/oauth/access_token')
          .setRequestTokenUrl('https://api.twitter.com/oauth/request_token')
          .setAuthorizationUrl('https://api.twitter.com/oauth/authorize')
          .setConsumerKey(API_KEY)
          .setConsumerSecret(API_SECRET)
          .setCallbackFunction('authCallback')
          .setPropertyStore(PropertiesService.getUserProperties());
    }
    /* コールバック関数 */
    function authCallback(request) {
      var service = getService();
      var authorized = service.handleCallback(request);
      if (authorized) return HtmlService.createHtmlOutput('認証成功');
    }
    /* 認証リセット */
    function reset() {
      getService().reset();
    }
    /* 認証用URL */
    function getOAuthURL() {
      Logger.log(getService().authorize());
    }
    /* リクエスト */
    function request1(text) {
      var service = getService();
      if (service.hasAccess()) {
        var url = 'https://api.twitter.com/1.1/statuses/update.json';
        var payload = {
          status: text
        };
        var options = {
          method: 'post',
          payload: payload,
          escaping: false
        };
        var response = service.fetch(url, options);
        var result = JSON.parse(response.getContentText());
        Logger.log(JSON.stringify(result, null, 2));
        return result;
      }
    }
    function tweet(){
      request1(getWeather());
    }
    

    (htps : // 코 m / 오징어 / / ms / 1d 33c26559 e c56 03
    보다 인용 tweet 부분만, getWeather의 실행 결과를 트윗하고 싶기 때문에 바꾸고 있습니다)
    API_KEY와 API_SECRET은 앞서 삼킨 것을 입력
    먼저 getOAuthURL을 실행하고 인증을 통과
    그 후 tweet을 실행하면 날씨 트윗 완료

    트리거 설정



    정기적으로 매일 실행하고 싶기 때문에 트리거를 설정합니다.
    "편집 → 현재 프로젝트 트리거"에서

    tweet을 실행하고 싶은 빈도, 시간대를 설정하면 OK

    좋은 웹페이지 즐겨찾기