[{"data":1,"prerenderedAt":5660},["ShallowReactive",2],{"published-posts-5":3,"posts-all-count":1102},[4,3263],{"id":5,"title":6,"body":7,"categories":3250,"description":3253,"draft":3254,"extension":3255,"meta":3256,"navigation":227,"path":3257,"priority":3258,"publishedAt":3259,"secret":3254,"seo":3260,"stem":3261,"updatedAt":3259,"__hash__":3262},"posts\u002Ftech\u002Fgoogle-photo-slack-bot.md","【Google Photo & Slack 写真Bot】GooglePhoto にある写真を取得し、Slack に送信する Bot を作った話",{"type":8,"value":9,"toc":3241},"minimark",[10,14,18,21,29,32,35,42,45,48,67,71,80,85,88,95,99,113,141,148,156,160,176,180,183,186,192,199,205,208,1357,1360,1375,1378,1397,1400,1403,1415,1418,1422,1425,3197,3200,3211,3218,3221,3237],[11,12,13],"h2",{"id":13},"前書き",[15,16,17],"p",{},"大学生からソフトウェアエンジニアになりたいと思い、プログラミングの独学を開始しました。2017 年 8 月サーバーエンジニアとして入社しました。Rails で開発しております。プログラミング初心者のときから、Qiita を読んでいて、わかりやすい記事を書きたいなっていつかずっと思ったので、わかりやすく書きます。(その分、長くなりますが、ご理解いただければ幸いです。)ここでは、使っている API やモジュールについてまとめます。",[11,19,20],{"id":20},"記事を書こうと思った理由",[15,22,23,24,28],{},"とある小さな IT ベンチャーのインターン生として働いているものです。CEO から google photo の写真から 1 日 1 枚ランダムで ",[25,26,27],"code",{},"#random"," に流す bot とかあったら盛り上がりそう」との一声がありました。CTO にお願いしていましたが、忙しくしていたのを見て、代わりに自分が作ることになりました。",[15,30,31],{},"こうして、写真 Bot を作ることになったが、難しい...と思ったのは、このときまだまだ先の話...。 詰まったことが多いので、記事にしてみることにしました。ちみに Python で書いてます。理由は、個人的に書いたことない言語だったので勉強したいと思ったとの、CTO が Python が好きだからです）",[11,33,34],{"id":34},"ゴール",[15,36,37,38,41],{},"下の写真のように、gallery という bot を呼び出し、",[25,39,40],{},"gallery","　と入力したあと、写真が slack に流れるようにすれば問題ありません。",[15,43,44],{},"1 つ 1 つ処理を見ていきましょう。",[11,46,47],{"id":47},"手順",[49,50,51,55,58,61,64],"ol",{},[52,53,54],"li",{},"Slack で、bot ユーザーを作成",[52,56,57],{},"Python で実装された Bot ライブラリをインストール",[52,59,60],{},"gdata の module をインストール",[52,62,63],{},"Google Auth 認証(Google Photo から写真を取得)",[52,65,66],{},"Rtmbot と Slack API を使って、Slack に文章と写真を投稿。",[68,69,70],"h3",{"id":70},"開発環境",[72,73,74,77],"ul",{},[52,75,76],{},"Python 2.7 (pyenv で開発環境を整えましょう)",[52,78,79],{},"Amazon EC2",[81,82,84],"h4",{"id":83},"_1-slack-で-bot-ユーザーを作成","1. Slack で Bot ユーザーを作成",[15,86,87],{},"まずは、Slack Apps のページで、Bot ユーザーを作成をします。\n赤い長方形で書いたものは、bot のトークンなので、どこか別の場所にコピーしましょう。",[15,89,90],{},[91,92],"img",{"alt":93,"src":94},"bot ユーザー作成","\u002Fcontent\u002Fgoogle-photo-slack-bot\u002Fbot-user.png",[81,96,98],{"id":97},"_2-pythonで実装されたbotライブラリをインストール","2. Pythonで実装されたBotライブラリをインストール",[15,100,101,102,112],{},"オープンソースの ",[103,104,111],"a",{"href":105,"rel":106,"target":110},"https:\u002F\u002Fgithub.com\u002Fslackapi\u002Fpython-rtmbot",[107,108,109],"nofollow","noopener","noreferrer","_blank","Bot 管理ライブラリ"," を pip 経由で、インストールする。",[114,115,120],"pre",{"className":116,"code":117,"language":118,"meta":119,"style":119},"language-bash shiki shiki-themes material-theme","$ pip install rtmbot\n","bash","",[25,121,122],{"__ignoreMap":119},[123,124,127,131,135,138],"span",{"class":125,"line":126},"line",1,[123,128,130],{"class":129},"s5Dmg","$",[123,132,134],{"class":133},"sfyAc"," pip",[123,136,137],{"class":133}," install",[123,139,140],{"class":133}," rtmbot\n",[15,142,143,144,147],{},"そのあと、",[25,145,146],{},"rtmbot.conf"," を作成し、下のように編集していきます。",[114,149,154],{"className":150,"code":152,"filename":146,"language":153,"meta":119},[151],"language-text","# Add the following to rtmbot.conf\n DEBUG: True # make this False in production\n\n # 1.のときに作成したBotのトークンをここに書いてください。\n SLACK_TOKEN: \"SLACK_TOKEN\"\n\n　　# ここには、Botのパスを書いてください。(ディレクトリの名前の間には、\u002Fではなく、 . を書きましょう。)\n ACTIVE_PLUGINS:\n     - plugins.google_photo_to_slack.GooglePhotoToSlackBot\n","text",[25,155,152],{"__ignoreMap":119},[81,157,159],{"id":158},"_3-gdataのmoduleをインストール","3. gdataのmoduleをインストール",[114,161,163],{"className":116,"code":162,"language":118,"meta":119,"style":119},"$ pip install gdata\n",[25,164,165],{"__ignoreMap":119},[123,166,167,169,171,173],{"class":125,"line":126},[123,168,130],{"class":129},[123,170,134],{"class":133},[123,172,137],{"class":133},[123,174,175],{"class":133}," gdata\n",[81,177,179],{"id":178},"_4-google-oauth認証google-photoから写真を取得","4. Google OAuth認証(Google Photoから写真を取得)",[15,181,182],{},"ここでは、Google OAuth2.0 認証のやり方を説明します。",[15,184,185],{},"Google Cloud PlatformDashboard->Use Google APIs->Credentials の順番で、OAuth2.0　Client ID を作成します。その secret json ファイルをダウンロードします。タイプは、「その他」を選択してください。",[15,187,188],{},[91,189],{"alt":190,"src":191},"Google Credential 作成","\u002Fcontent\u002Fgoogle-photo-slack-bot\u002Fgoogle-credential.png",[15,193,194,195,198],{},"いろいろと、ファイルが増えてきたなかで、ディレクトリ構造は下のようになります。\n",[25,196,197],{},"credentials.dat"," の中身は、今のところ何も書かなくて大丈夫です。",[114,200,203],{"className":201,"code":202,"language":153,"meta":119},[151],"rtmbot\n├── photo-gallery.json\n├── credentials.dat\n├── plugins\n│   ├── __init__.py\n│   └── google_photo_to_slack.py\n├── rtmbot.conf\n└── rtmbot.log\n",[25,204,202],{"__ignoreMap":119},[15,206,207],{},"最初は、ログインを確かめるために、下のように書いてみましょう。\n下のファイルに書かれてあるモジュールで、インストールしていないものがあれば、インストールしましょう。",[114,209,214],{"className":210,"code":211,"filename":212,"language":213,"meta":119,"style":119},"language-python shiki shiki-themes material-theme","#!\u002Fusr\u002Fbin\u002Fpython2.7\n\n# module ----\nimport os\nimport webbrowser\nfrom datetime import datetime, timedelta\nfrom oauth2client.client import flow_from_clientsecrets\nfrom oauth2client.file import Storage\nimport gdata.photos.service\nimport gdata.media\nimport gdata.geo\nimport httplib2\nimport json\nimport urllib2\n\n# Google Authetication\ndef OAuth2Login(client_secrets, credential_store, email):\n    scope='https:\u002F\u002Fpicasaweb.google.com\u002Fdata\u002F'\n    user_agent='picasawebuploader'\n    storage = Storage(credential_store)\n    credentials = storage.get()\n\n    if credentials is None or credentials.invalid:\n        flow = flow_from_clientsecrets(client_secrets, scope=scope, redirect_uri='urn:ietf:wg:oauth:2.0:oob')\n        uri = flow.step1_get_authorize_url()\n        webbrowser.open(uri)\n        code = raw_input('Enter the authentication code: ').strip()\n        credentials = flow.step2_exchange(code)\n        storage.put(credentials)\n\n    if (credentials.token_expiry - datetime.utcnow()) \u003C timedelta(minutes=5):\n        http = httplib2.Http()\n        http = credentials.authorize(http)\n        credentials.refresh(http)\n\n    gd_client = gdata.photos.service.PhotosService(source=user_agent,\n                                               email=email,\n                                               additional_headers={'Authorization' : 'Bearer %s' % credentials.access_token})\n    return gd_client\n\n# main -----\nif __name__ == '__main__':\n    email = os.environ['EMAIL']\n    confDir = os.path.abspath(os.path.dirname(__file__))\n    client_secrets = os.path.join(confDir, 'photo-gallery.json')\n    credential_store = os.path.join(confDir, 'credentials.dat')\n    gd_client = OAuth2Login(client_secrets, credential_store, email)\n\n    albums = gd_client.GetUserFeed()\n    for album in albums.entry:\n        print 'Album: %s (%s)' % (album.title.text, album.numphotos.text)\n\n        photos = gd_client.GetFeed('\u002Fdata\u002Ffeed\u002Fapi\u002Fuser\u002Fdefault\u002Falbumid\u002F%s?kind=photo' % (album.gphoto_id.text))\n        for photo in photos.entry:\n            print(photo.title.text)\n            f = open(photo.title.text, 'w')\n            f.write(urllib2.urlopen(photo.content.src).read())\n            f.close()\n","google_photo_to_slack.py","python",[25,215,216,222,229,235,246,254,275,294,311,330,342,354,362,370,378,383,389,420,438,453,472,491,496,525,566,584,602,630,651,669,674,721,739,760,777,782,819,832,875,884,889,895,916,945,987,1022,1054,1077,1082,1100,1122,1176,1181,1227,1247,1268,1302,1345],{"__ignoreMap":119},[123,217,218],{"class":125,"line":126},[123,219,221],{"class":220},"s0_hs","#!\u002Fusr\u002Fbin\u002Fpython2.7\n",[123,223,225],{"class":125,"line":224},2,[123,226,228],{"emptyLinePlaceholder":227},true,"\n",[123,230,232],{"class":125,"line":231},3,[123,233,234],{"class":220},"# module ----\n",[123,236,238,242],{"class":125,"line":237},4,[123,239,241],{"class":240},"s6cf3","import",[123,243,245],{"class":244},"svy0-"," os\n",[123,247,249,251],{"class":125,"line":248},5,[123,250,241],{"class":240},[123,252,253],{"class":244}," webbrowser\n",[123,255,257,260,263,265,268,272],{"class":125,"line":256},6,[123,258,259],{"class":240},"from",[123,261,262],{"class":244}," datetime ",[123,264,241],{"class":240},[123,266,267],{"class":244}," datetime",[123,269,271],{"class":270},"sAklC",",",[123,273,274],{"class":244}," timedelta\n",[123,276,278,280,283,286,289,291],{"class":125,"line":277},7,[123,279,259],{"class":240},[123,281,282],{"class":244}," oauth2client",[123,284,285],{"class":270},".",[123,287,288],{"class":244},"client ",[123,290,241],{"class":240},[123,292,293],{"class":244}," flow_from_clientsecrets\n",[123,295,297,299,301,303,306,308],{"class":125,"line":296},8,[123,298,259],{"class":240},[123,300,282],{"class":244},[123,302,285],{"class":270},[123,304,305],{"class":244},"file ",[123,307,241],{"class":240},[123,309,310],{"class":244}," Storage\n",[123,312,314,316,319,321,325,327],{"class":125,"line":313},9,[123,315,241],{"class":240},[123,317,318],{"class":244}," gdata",[123,320,285],{"class":270},[123,322,324],{"class":323},"s-wAU","photos",[123,326,285],{"class":270},[123,328,329],{"class":323},"service\n",[123,331,333,335,337,339],{"class":125,"line":332},10,[123,334,241],{"class":240},[123,336,318],{"class":244},[123,338,285],{"class":270},[123,340,341],{"class":323},"media\n",[123,343,345,347,349,351],{"class":125,"line":344},11,[123,346,241],{"class":240},[123,348,318],{"class":244},[123,350,285],{"class":270},[123,352,353],{"class":323},"geo\n",[123,355,357,359],{"class":125,"line":356},12,[123,358,241],{"class":240},[123,360,361],{"class":244}," httplib2\n",[123,363,365,367],{"class":125,"line":364},13,[123,366,241],{"class":240},[123,368,369],{"class":244}," json\n",[123,371,373,375],{"class":125,"line":372},14,[123,374,241],{"class":240},[123,376,377],{"class":244}," urllib2\n",[123,379,381],{"class":125,"line":380},15,[123,382,228],{"emptyLinePlaceholder":227},[123,384,386],{"class":125,"line":385},16,[123,387,388],{"class":220},"# Google Authetication\n",[123,390,392,396,400,403,407,409,412,414,417],{"class":125,"line":391},17,[123,393,395],{"class":394},"sJ14y","def",[123,397,399],{"class":398},"sdLwU"," OAuth2Login",[123,401,402],{"class":270},"(",[123,404,406],{"class":405},"sLFUT","client_secrets",[123,408,271],{"class":270},[123,410,411],{"class":405}," credential_store",[123,413,271],{"class":270},[123,415,416],{"class":405}," email",[123,418,419],{"class":270},"):\n",[123,421,423,426,429,432,435],{"class":125,"line":422},18,[123,424,425],{"class":244},"    scope",[123,427,428],{"class":270},"=",[123,430,431],{"class":270},"'",[123,433,434],{"class":133},"https:\u002F\u002Fpicasaweb.google.com\u002Fdata\u002F",[123,436,437],{"class":270},"'\n",[123,439,441,444,446,448,451],{"class":125,"line":440},19,[123,442,443],{"class":244},"    user_agent",[123,445,428],{"class":270},[123,447,431],{"class":270},[123,449,450],{"class":133},"picasawebuploader",[123,452,437],{"class":270},[123,454,456,459,461,464,466,469],{"class":125,"line":455},20,[123,457,458],{"class":244},"    storage ",[123,460,428],{"class":270},[123,462,463],{"class":398}," Storage",[123,465,402],{"class":270},[123,467,468],{"class":398},"credential_store",[123,470,471],{"class":270},")\n",[123,473,475,478,480,483,485,488],{"class":125,"line":474},21,[123,476,477],{"class":244},"    credentials ",[123,479,428],{"class":270},[123,481,482],{"class":244}," storage",[123,484,285],{"class":270},[123,486,487],{"class":398},"get",[123,489,490],{"class":270},"()\n",[123,492,494],{"class":125,"line":493},22,[123,495,228],{"emptyLinePlaceholder":227},[123,497,499,502,505,508,511,514,517,519,522],{"class":125,"line":498},23,[123,500,501],{"class":240},"    if",[123,503,504],{"class":244}," credentials ",[123,506,507],{"class":270},"is",[123,509,510],{"class":270}," None",[123,512,513],{"class":270}," or",[123,515,516],{"class":244}," credentials",[123,518,285],{"class":270},[123,520,521],{"class":323},"invalid",[123,523,524],{"class":270},":\n",[123,526,528,531,533,536,538,540,542,545,547,550,552,555,557,559,562,564],{"class":125,"line":527},24,[123,529,530],{"class":244},"        flow ",[123,532,428],{"class":270},[123,534,535],{"class":398}," flow_from_clientsecrets",[123,537,402],{"class":270},[123,539,406],{"class":398},[123,541,271],{"class":270},[123,543,544],{"class":405}," scope",[123,546,428],{"class":270},[123,548,549],{"class":398},"scope",[123,551,271],{"class":270},[123,553,554],{"class":405}," redirect_uri",[123,556,428],{"class":270},[123,558,431],{"class":270},[123,560,561],{"class":133},"urn:ietf:wg:oauth:2.0:oob",[123,563,431],{"class":270},[123,565,471],{"class":270},[123,567,569,572,574,577,579,582],{"class":125,"line":568},25,[123,570,571],{"class":244},"        uri ",[123,573,428],{"class":270},[123,575,576],{"class":244}," flow",[123,578,285],{"class":270},[123,580,581],{"class":398},"step1_get_authorize_url",[123,583,490],{"class":270},[123,585,587,590,592,595,597,600],{"class":125,"line":586},26,[123,588,589],{"class":244},"        webbrowser",[123,591,285],{"class":270},[123,593,594],{"class":398},"open",[123,596,402],{"class":270},[123,598,599],{"class":398},"uri",[123,601,471],{"class":270},[123,603,605,608,610,613,615,617,620,622,625,628],{"class":125,"line":604},27,[123,606,607],{"class":244},"        code ",[123,609,428],{"class":270},[123,611,612],{"class":244}," raw_input",[123,614,402],{"class":270},[123,616,431],{"class":270},[123,618,619],{"class":133},"Enter the authentication code: ",[123,621,431],{"class":270},[123,623,624],{"class":270},").",[123,626,627],{"class":398},"strip",[123,629,490],{"class":270},[123,631,633,636,638,640,642,645,647,649],{"class":125,"line":632},28,[123,634,635],{"class":244},"        credentials ",[123,637,428],{"class":270},[123,639,576],{"class":244},[123,641,285],{"class":270},[123,643,644],{"class":398},"step2_exchange",[123,646,402],{"class":270},[123,648,25],{"class":398},[123,650,471],{"class":270},[123,652,654,657,659,662,664,667],{"class":125,"line":653},29,[123,655,656],{"class":244},"        storage",[123,658,285],{"class":270},[123,660,661],{"class":398},"put",[123,663,402],{"class":270},[123,665,666],{"class":398},"credentials",[123,668,471],{"class":270},[123,670,672],{"class":125,"line":671},30,[123,673,228],{"emptyLinePlaceholder":227},[123,675,677,679,682,684,686,689,692,694,696,699,702,705,708,710,713,715,719],{"class":125,"line":676},31,[123,678,501],{"class":240},[123,680,681],{"class":270}," (",[123,683,666],{"class":244},[123,685,285],{"class":270},[123,687,688],{"class":323},"token_expiry",[123,690,691],{"class":270}," -",[123,693,267],{"class":244},[123,695,285],{"class":270},[123,697,698],{"class":398},"utcnow",[123,700,701],{"class":270},"())",[123,703,704],{"class":270}," \u003C",[123,706,707],{"class":398}," timedelta",[123,709,402],{"class":270},[123,711,712],{"class":405},"minutes",[123,714,428],{"class":270},[123,716,718],{"class":717},"sx098","5",[123,720,419],{"class":270},[123,722,724,727,729,732,734,737],{"class":125,"line":723},32,[123,725,726],{"class":244},"        http ",[123,728,428],{"class":270},[123,730,731],{"class":244}," httplib2",[123,733,285],{"class":270},[123,735,736],{"class":398},"Http",[123,738,490],{"class":270},[123,740,742,744,746,748,750,753,755,758],{"class":125,"line":741},33,[123,743,726],{"class":244},[123,745,428],{"class":270},[123,747,516],{"class":244},[123,749,285],{"class":270},[123,751,752],{"class":398},"authorize",[123,754,402],{"class":270},[123,756,757],{"class":398},"http",[123,759,471],{"class":270},[123,761,763,766,768,771,773,775],{"class":125,"line":762},34,[123,764,765],{"class":244},"        credentials",[123,767,285],{"class":270},[123,769,770],{"class":398},"refresh",[123,772,402],{"class":270},[123,774,757],{"class":398},[123,776,471],{"class":270},[123,778,780],{"class":125,"line":779},35,[123,781,228],{"emptyLinePlaceholder":227},[123,783,785,788,790,792,794,796,798,801,803,806,808,811,813,816],{"class":125,"line":784},36,[123,786,787],{"class":244},"    gd_client ",[123,789,428],{"class":270},[123,791,318],{"class":244},[123,793,285],{"class":270},[123,795,324],{"class":323},[123,797,285],{"class":270},[123,799,800],{"class":323},"service",[123,802,285],{"class":270},[123,804,805],{"class":398},"PhotosService",[123,807,402],{"class":270},[123,809,810],{"class":405},"source",[123,812,428],{"class":270},[123,814,815],{"class":398},"user_agent",[123,817,818],{"class":270},",\n",[123,820,822,825,827,830],{"class":125,"line":821},37,[123,823,824],{"class":405},"                                               email",[123,826,428],{"class":270},[123,828,829],{"class":398},"email",[123,831,818],{"class":270},[123,833,835,838,841,843,846,848,851,854,857,860,862,865,867,869,872],{"class":125,"line":834},38,[123,836,837],{"class":405},"                                               additional_headers",[123,839,840],{"class":270},"={",[123,842,431],{"class":270},[123,844,845],{"class":133},"Authorization",[123,847,431],{"class":270},[123,849,850],{"class":270}," :",[123,852,853],{"class":270}," '",[123,855,856],{"class":133},"Bearer ",[123,858,859],{"class":717},"%s",[123,861,431],{"class":270},[123,863,864],{"class":270}," %",[123,866,516],{"class":398},[123,868,285],{"class":270},[123,870,871],{"class":323},"access_token",[123,873,874],{"class":270},"})\n",[123,876,878,881],{"class":125,"line":877},39,[123,879,880],{"class":240},"    return",[123,882,883],{"class":244}," gd_client\n",[123,885,887],{"class":125,"line":886},40,[123,888,228],{"emptyLinePlaceholder":227},[123,890,892],{"class":125,"line":891},41,[123,893,894],{"class":220},"# main -----\n",[123,896,898,901,904,907,909,912,914],{"class":125,"line":897},42,[123,899,900],{"class":240},"if",[123,902,903],{"class":244}," __name__ ",[123,905,906],{"class":270},"==",[123,908,853],{"class":270},[123,910,911],{"class":133},"__main__",[123,913,431],{"class":270},[123,915,524],{"class":270},[123,917,919,922,924,927,929,932,935,937,940,942],{"class":125,"line":918},43,[123,920,921],{"class":244},"    email ",[123,923,428],{"class":270},[123,925,926],{"class":244}," os",[123,928,285],{"class":270},[123,930,931],{"class":323},"environ",[123,933,934],{"class":270},"[",[123,936,431],{"class":270},[123,938,939],{"class":133},"EMAIL",[123,941,431],{"class":270},[123,943,944],{"class":270},"]\n",[123,946,948,951,953,955,957,960,962,965,967,970,972,974,976,979,981,984],{"class":125,"line":947},44,[123,949,950],{"class":244},"    confDir ",[123,952,428],{"class":270},[123,954,926],{"class":244},[123,956,285],{"class":270},[123,958,959],{"class":323},"path",[123,961,285],{"class":270},[123,963,964],{"class":398},"abspath",[123,966,402],{"class":270},[123,968,969],{"class":398},"os",[123,971,285],{"class":270},[123,973,959],{"class":323},[123,975,285],{"class":270},[123,977,978],{"class":398},"dirname",[123,980,402],{"class":270},[123,982,983],{"class":244},"__file__",[123,985,986],{"class":270},"))\n",[123,988,990,993,995,997,999,1001,1003,1006,1008,1011,1013,1015,1018,1020],{"class":125,"line":989},45,[123,991,992],{"class":244},"    client_secrets ",[123,994,428],{"class":270},[123,996,926],{"class":244},[123,998,285],{"class":270},[123,1000,959],{"class":323},[123,1002,285],{"class":270},[123,1004,1005],{"class":398},"join",[123,1007,402],{"class":270},[123,1009,1010],{"class":398},"confDir",[123,1012,271],{"class":270},[123,1014,853],{"class":270},[123,1016,1017],{"class":133},"photo-gallery.json",[123,1019,431],{"class":270},[123,1021,471],{"class":270},[123,1023,1025,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052],{"class":125,"line":1024},46,[123,1026,1027],{"class":244},"    credential_store ",[123,1029,428],{"class":270},[123,1031,926],{"class":244},[123,1033,285],{"class":270},[123,1035,959],{"class":323},[123,1037,285],{"class":270},[123,1039,1005],{"class":398},[123,1041,402],{"class":270},[123,1043,1010],{"class":398},[123,1045,271],{"class":270},[123,1047,853],{"class":270},[123,1049,197],{"class":133},[123,1051,431],{"class":270},[123,1053,471],{"class":270},[123,1055,1057,1059,1061,1063,1065,1067,1069,1071,1073,1075],{"class":125,"line":1056},47,[123,1058,787],{"class":244},[123,1060,428],{"class":270},[123,1062,399],{"class":398},[123,1064,402],{"class":270},[123,1066,406],{"class":398},[123,1068,271],{"class":270},[123,1070,411],{"class":398},[123,1072,271],{"class":270},[123,1074,416],{"class":398},[123,1076,471],{"class":270},[123,1078,1080],{"class":125,"line":1079},48,[123,1081,228],{"emptyLinePlaceholder":227},[123,1083,1085,1088,1090,1093,1095,1098],{"class":125,"line":1084},49,[123,1086,1087],{"class":244},"    albums ",[123,1089,428],{"class":270},[123,1091,1092],{"class":244}," gd_client",[123,1094,285],{"class":270},[123,1096,1097],{"class":398},"GetUserFeed",[123,1099,490],{"class":270},[123,1101,1103,1106,1109,1112,1115,1117,1120],{"class":125,"line":1102},50,[123,1104,1105],{"class":240},"    for",[123,1107,1108],{"class":244}," album ",[123,1110,1111],{"class":240},"in",[123,1113,1114],{"class":244}," albums",[123,1116,285],{"class":270},[123,1118,1119],{"class":323},"entry",[123,1121,524],{"class":270},[123,1123,1125,1128,1130,1133,1135,1137,1139,1142,1144,1146,1148,1151,1153,1156,1158,1160,1162,1165,1167,1170,1172,1174],{"class":125,"line":1124},51,[123,1126,1127],{"class":398},"        print",[123,1129,853],{"class":270},[123,1131,1132],{"class":133},"Album: ",[123,1134,859],{"class":717},[123,1136,681],{"class":133},[123,1138,859],{"class":717},[123,1140,1141],{"class":133},")",[123,1143,431],{"class":270},[123,1145,864],{"class":270},[123,1147,681],{"class":270},[123,1149,1150],{"class":244},"album",[123,1152,285],{"class":270},[123,1154,1155],{"class":323},"title",[123,1157,285],{"class":270},[123,1159,153],{"class":323},[123,1161,271],{"class":270},[123,1163,1164],{"class":244}," album",[123,1166,285],{"class":270},[123,1168,1169],{"class":323},"numphotos",[123,1171,285],{"class":270},[123,1173,153],{"class":323},[123,1175,471],{"class":270},[123,1177,1179],{"class":125,"line":1178},52,[123,1180,228],{"emptyLinePlaceholder":227},[123,1182,1184,1187,1189,1191,1193,1196,1198,1200,1203,1205,1208,1210,1212,1214,1216,1218,1221,1223,1225],{"class":125,"line":1183},53,[123,1185,1186],{"class":244},"        photos ",[123,1188,428],{"class":270},[123,1190,1092],{"class":244},[123,1192,285],{"class":270},[123,1194,1195],{"class":398},"GetFeed",[123,1197,402],{"class":270},[123,1199,431],{"class":270},[123,1201,1202],{"class":133},"\u002Fdata\u002Ffeed\u002Fapi\u002Fuser\u002Fdefault\u002Falbumid\u002F",[123,1204,859],{"class":717},[123,1206,1207],{"class":133},"?kind=photo",[123,1209,431],{"class":270},[123,1211,864],{"class":270},[123,1213,681],{"class":270},[123,1215,1150],{"class":398},[123,1217,285],{"class":270},[123,1219,1220],{"class":323},"gphoto_id",[123,1222,285],{"class":270},[123,1224,153],{"class":323},[123,1226,986],{"class":270},[123,1228,1230,1233,1236,1238,1241,1243,1245],{"class":125,"line":1229},54,[123,1231,1232],{"class":240},"        for",[123,1234,1235],{"class":244}," photo ",[123,1237,1111],{"class":240},[123,1239,1240],{"class":244}," photos",[123,1242,285],{"class":270},[123,1244,1119],{"class":323},[123,1246,524],{"class":270},[123,1248,1250,1253,1255,1258,1260,1262,1264,1266],{"class":125,"line":1249},55,[123,1251,1252],{"class":398},"            print",[123,1254,402],{"class":270},[123,1256,1257],{"class":398},"photo",[123,1259,285],{"class":270},[123,1261,1155],{"class":323},[123,1263,285],{"class":270},[123,1265,153],{"class":323},[123,1267,471],{"class":270},[123,1269,1271,1274,1276,1279,1281,1283,1285,1287,1289,1291,1293,1295,1298,1300],{"class":125,"line":1270},56,[123,1272,1273],{"class":244},"            f ",[123,1275,428],{"class":270},[123,1277,1278],{"class":398}," open",[123,1280,402],{"class":270},[123,1282,1257],{"class":398},[123,1284,285],{"class":270},[123,1286,1155],{"class":323},[123,1288,285],{"class":270},[123,1290,153],{"class":323},[123,1292,271],{"class":270},[123,1294,853],{"class":270},[123,1296,1297],{"class":133},"w",[123,1299,431],{"class":270},[123,1301,471],{"class":270},[123,1303,1305,1308,1310,1313,1315,1318,1320,1323,1325,1327,1329,1332,1334,1337,1339,1342],{"class":125,"line":1304},57,[123,1306,1307],{"class":244},"            f",[123,1309,285],{"class":270},[123,1311,1312],{"class":398},"write",[123,1314,402],{"class":270},[123,1316,1317],{"class":398},"urllib2",[123,1319,285],{"class":270},[123,1321,1322],{"class":398},"urlopen",[123,1324,402],{"class":270},[123,1326,1257],{"class":398},[123,1328,285],{"class":270},[123,1330,1331],{"class":323},"content",[123,1333,285],{"class":270},[123,1335,1336],{"class":323},"src",[123,1338,624],{"class":270},[123,1340,1341],{"class":398},"read",[123,1343,1344],{"class":270},"())\n",[123,1346,1348,1350,1352,1355],{"class":125,"line":1347},58,[123,1349,1307],{"class":244},[123,1351,285],{"class":270},[123,1353,1354],{"class":398},"close",[123,1356,490],{"class":270},[15,1358,1359],{},"そして、上のファイルを実行してみると、",[114,1361,1363],{"className":116,"code":1362,"language":118,"meta":119,"style":119},"$ python google_photo_to_slack.py\n",[25,1364,1365],{"__ignoreMap":119},[123,1366,1367,1369,1372],{"class":125,"line":126},[123,1368,130],{"class":129},[123,1370,1371],{"class":133}," python",[123,1373,1374],{"class":133}," google_photo_to_slack.py\n",[15,1376,1377],{},"下のように、ブラウザには、写真のページが表示され、コンソールにはブラウザに表示されている authentication code を入力せよとのものが出てきます。",[114,1379,1381],{"className":116,"code":1380,"language":118,"meta":119,"style":119},"Enter the authentication code:\n",[25,1382,1383],{"__ignoreMap":119},[123,1384,1385,1388,1391,1394],{"class":125,"line":126},[123,1386,1387],{"class":129},"Enter",[123,1389,1390],{"class":133}," the",[123,1392,1393],{"class":133}," authentication",[123,1395,1396],{"class":133}," code:\n",[15,1398,1399],{},"ブラウザに表示される authentication code を入力すれば、ログイン完了です。",[15,1401,1402],{},"もう一度、",[114,1404,1405],{"className":116,"code":1362,"language":118,"meta":119,"style":119},[25,1406,1407],{"__ignoreMap":119},[123,1408,1409,1411,1413],{"class":125,"line":126},[123,1410,130],{"class":129},[123,1412,1371],{"class":133},[123,1414,1374],{"class":133},[15,1416,1417],{},"を実行すれば、google photo にある写真が全て、ダウンロードされます。",[81,1419,1421],{"id":1420},"_5-rtmbotとslack-apiを使ってslackに文章と写真を投稿","5. RtmbotとSlack APIを使って、Slackに文章と写真を投稿",[15,1423,1424],{},"上の GooglePhotoToSlack ファイルを下のように編集しましょう。",[114,1426,1429],{"className":210,"code":1427,"filename":1428,"language":213,"meta":119,"style":119},"class GooglePhotoToSlackBot (Plugin):\n    MEDIA_ARR = []\n    RANDOM_NUMBER = 0\n    EMAIL = os.version['EMAIL']\n    CHANNEL_POST = ''\n    SLACK_BOT_TOKEN = os.version['SLACK_BOT_TOKEN']\n\n    PLUGIN_CHILD_DIRECTORY = os.path.abspath(os.path.dirname(__file__))\n    PLUGIN_DIRECTORY = os.path.abspath(\n        os.path.join(PLUGIN_CHILD_DIRECTORY, os.pardir)\n    )\n    RTMBOT_DIRECTORY = os.path.abspath(\n        os.path.join(PLUGIN_DIRECTORY, os.pardir)\n    )\n    CLIENT_SECRETS = os.path.join(RTMBOT_DIRECTORY, os.version['SECRET_JSON'])\n    CREDENTIAL_STORE = os.path.join(\n        RTMBOT_DIRECTORY, os.version['CREDENTIAL_DAT']\n    )\n\n    def process_message(self, data):\n        feedback_pattern = re.compile(\n            # ここには、slack users list apiに表示されるUから始まるbotのidを入れてください\n            r'.*\u003C@UAAAAAAA.*(gallery).*', re.DOTALL | re.IGNORECASE\n        )\n\n        if not (re.match(feedback_pattern, data['text'])):\n            return\n\n        self.CHANNEL_POST = data['channel']\n\n        message = u\"本日の画像\u002F映像をダウンロードしています！少しお待ち下さい！ \"\n        message += \"動画の場合は、ダウンロードに時間がかかる場合があります。\"\n        response = self.slack_client.api_call(\n            \"chat.postMessage\",\n            channel=self.CHANNEL_POST,\n            text=message,\n            link_names=1,\n            as_user=True\n        )\n\n        self.fetch_all_media()\n        self.post_random_media()\n\n    def oauth_login(self, client_secrets, credential_store, email):\n        scope = 'https:\u002F\u002Fpicasaweb.google.com\u002Fdata\u002F'\n        user_agent = 'picasawebuploader'\n        storage = Storage(credential_store)\n        credentials = storage.get()\n        now_time = datetime.utcnow()\n\n        if credentials is None or credentials.invalid:\n            flow = flow_from_clientsecrets(\n                client_secrets,\n                scope=scope,\n                redirect_uri='urn:ietf:wg:oauth:2.0:oob'\n            )\n            uri = flow.step1_get_authorize_url()\n            webbrowser.open(uri)\n            code = raw_input('Enter the authentication code: ').strip()\n            credentials = flow.step2_exchange(code)\n            storage.put(credentials)\n\n        if (credentials.token_expiry - now_time) \u003C timedelta(minutes=5):\n            http = httplib2.Http()\n            http = credentials.authorize(http)\n            credentials.refresh(http)\n\n        gd_client = gdata.photos.service.PhotosService(\n            source=user_agent,\n            email=email,\n            additional_headers={\n                'Authorization': 'Bearer %s' % credentials.access_token\n            }\n        )\n\n        return gd_client\n\n    def fetch_all_media(self):\n        gd_client = self.oauth_login(\n            self.CLIENT_SECRETS,\n            self.CREDENTIAL_STORE,\n            self.EMAIL\n        )\n\n        albums = gd_client.GetUserFeed()\n        for album in albums.entry:\n            medias = gd_client.GetFeed(\n                '\u002Fdata\u002Ffeed\u002Fapi\u002Fuser\u002Fdefault\u002Falbumid\u002F%s' %\n                (album.gphoto_id.text)\n            )\n            for media in medias.entry:\n                self.MEDIA_ARR.append(media)\n\n    def get_random_number_in_array(self, arr):\n        max_length = len(arr)\n        return random.randint(0, max_length)\n\n    def post_random_media(self):\n        self.RANDOM_NUMBER = self.get_random_number_in_array(self.MEDIA_ARR)\n        media_object = self.MEDIA_ARR[self.RANDOM_NUMBER]\n        media_file = open(media_object.title.text, 'wb')\n        media_file.write(response.content)\n        media_file.close()\n        media_path = self.RTMBOT_DIRECTORY + \"\u002F\" + media_object.title.text\n\n        with open(media_path, 'rb') as f:\n            param = {\n                'token': self.SLACK_BOT_TOKEN,\n                'channels': self.CHANNEL_POST,\n                'title': u'Today\\'s ' + media\n            }\n            r = requests.post(\n                \"https:\u002F\u002Fslack.com\u002Fapi\u002Ffiles.upload\",\n                params = param,\n                files = {'file': f}\n            )\n","GooglePhotoToSlackBot.py",[25,1430,1431,1446,1456,1466,1490,1500,1524,1528,1563,1583,1612,1617,1636,1663,1667,1709,1728,1752,1756,1760,1781,1798,1803,1849,1854,1858,1896,1901,1905,1931,1935,1954,1969,1991,2003,2018,2030,2042,2050,2054,2058,2069,2080,2084,2110,2123,2136,2151,2165,2180,2184,2204,2215,2222,2233,2246,2251,2266,2281,2305,2325,2341,2346,2380,2396,2415,2431,2436,2460,2472,2484,2493,2523,2529,2534,2539,2547,2552,2566,2582,2595,2607,2617,2622,2627,2643,2660,2676,2690,2708,2713,2733,2756,2761,2780,2798,2823,2828,2842,2871,2895,2929,2950,2961,2999,3004,3036,3047,3067,3087,3118,3123,3141,3154,3167,3192],{"__ignoreMap":119},[123,1432,1433,1436,1439,1441,1444],{"class":125,"line":126},[123,1434,1435],{"class":394},"class",[123,1437,1438],{"class":129}," GooglePhotoToSlackBot",[123,1440,681],{"class":270},[123,1442,1443],{"class":129},"Plugin",[123,1445,419],{"class":270},[123,1447,1448,1451,1453],{"class":125,"line":224},[123,1449,1450],{"class":244},"    MEDIA_ARR ",[123,1452,428],{"class":270},[123,1454,1455],{"class":270}," []\n",[123,1457,1458,1461,1463],{"class":125,"line":231},[123,1459,1460],{"class":244},"    RANDOM_NUMBER ",[123,1462,428],{"class":270},[123,1464,1465],{"class":717}," 0\n",[123,1467,1468,1471,1473,1475,1477,1480,1482,1484,1486,1488],{"class":125,"line":237},[123,1469,1470],{"class":244},"    EMAIL ",[123,1472,428],{"class":270},[123,1474,926],{"class":244},[123,1476,285],{"class":270},[123,1478,1479],{"class":323},"version",[123,1481,934],{"class":270},[123,1483,431],{"class":270},[123,1485,939],{"class":133},[123,1487,431],{"class":270},[123,1489,944],{"class":270},[123,1491,1492,1495,1497],{"class":125,"line":248},[123,1493,1494],{"class":244},"    CHANNEL_POST ",[123,1496,428],{"class":270},[123,1498,1499],{"class":270}," ''\n",[123,1501,1502,1505,1507,1509,1511,1513,1515,1517,1520,1522],{"class":125,"line":256},[123,1503,1504],{"class":244},"    SLACK_BOT_TOKEN ",[123,1506,428],{"class":270},[123,1508,926],{"class":244},[123,1510,285],{"class":270},[123,1512,1479],{"class":323},[123,1514,934],{"class":270},[123,1516,431],{"class":270},[123,1518,1519],{"class":133},"SLACK_BOT_TOKEN",[123,1521,431],{"class":270},[123,1523,944],{"class":270},[123,1525,1526],{"class":125,"line":277},[123,1527,228],{"emptyLinePlaceholder":227},[123,1529,1530,1533,1535,1537,1539,1541,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561],{"class":125,"line":296},[123,1531,1532],{"class":244},"    PLUGIN_CHILD_DIRECTORY ",[123,1534,428],{"class":270},[123,1536,926],{"class":244},[123,1538,285],{"class":270},[123,1540,959],{"class":323},[123,1542,285],{"class":270},[123,1544,964],{"class":398},[123,1546,402],{"class":270},[123,1548,969],{"class":398},[123,1550,285],{"class":270},[123,1552,959],{"class":323},[123,1554,285],{"class":270},[123,1556,978],{"class":398},[123,1558,402],{"class":270},[123,1560,983],{"class":244},[123,1562,986],{"class":270},[123,1564,1565,1568,1570,1572,1574,1576,1578,1580],{"class":125,"line":313},[123,1566,1567],{"class":244},"    PLUGIN_DIRECTORY ",[123,1569,428],{"class":270},[123,1571,926],{"class":244},[123,1573,285],{"class":270},[123,1575,959],{"class":323},[123,1577,285],{"class":270},[123,1579,964],{"class":398},[123,1581,1582],{"class":270},"(\n",[123,1584,1585,1588,1590,1592,1594,1596,1598,1601,1603,1605,1607,1610],{"class":125,"line":332},[123,1586,1587],{"class":398},"        os",[123,1589,285],{"class":270},[123,1591,959],{"class":323},[123,1593,285],{"class":270},[123,1595,1005],{"class":398},[123,1597,402],{"class":270},[123,1599,1600],{"class":398},"PLUGIN_CHILD_DIRECTORY",[123,1602,271],{"class":270},[123,1604,926],{"class":398},[123,1606,285],{"class":270},[123,1608,1609],{"class":323},"pardir",[123,1611,471],{"class":270},[123,1613,1614],{"class":125,"line":344},[123,1615,1616],{"class":270},"    )\n",[123,1618,1619,1622,1624,1626,1628,1630,1632,1634],{"class":125,"line":356},[123,1620,1621],{"class":244},"    RTMBOT_DIRECTORY ",[123,1623,428],{"class":270},[123,1625,926],{"class":244},[123,1627,285],{"class":270},[123,1629,959],{"class":323},[123,1631,285],{"class":270},[123,1633,964],{"class":398},[123,1635,1582],{"class":270},[123,1637,1638,1640,1642,1644,1646,1648,1650,1653,1655,1657,1659,1661],{"class":125,"line":364},[123,1639,1587],{"class":398},[123,1641,285],{"class":270},[123,1643,959],{"class":323},[123,1645,285],{"class":270},[123,1647,1005],{"class":398},[123,1649,402],{"class":270},[123,1651,1652],{"class":398},"PLUGIN_DIRECTORY",[123,1654,271],{"class":270},[123,1656,926],{"class":398},[123,1658,285],{"class":270},[123,1660,1609],{"class":323},[123,1662,471],{"class":270},[123,1664,1665],{"class":125,"line":372},[123,1666,1616],{"class":270},[123,1668,1669,1672,1674,1676,1678,1680,1682,1684,1686,1689,1691,1693,1695,1697,1699,1701,1704,1706],{"class":125,"line":380},[123,1670,1671],{"class":244},"    CLIENT_SECRETS ",[123,1673,428],{"class":270},[123,1675,926],{"class":244},[123,1677,285],{"class":270},[123,1679,959],{"class":323},[123,1681,285],{"class":270},[123,1683,1005],{"class":398},[123,1685,402],{"class":270},[123,1687,1688],{"class":398},"RTMBOT_DIRECTORY",[123,1690,271],{"class":270},[123,1692,926],{"class":398},[123,1694,285],{"class":270},[123,1696,1479],{"class":323},[123,1698,934],{"class":270},[123,1700,431],{"class":270},[123,1702,1703],{"class":133},"SECRET_JSON",[123,1705,431],{"class":270},[123,1707,1708],{"class":270},"])\n",[123,1710,1711,1714,1716,1718,1720,1722,1724,1726],{"class":125,"line":385},[123,1712,1713],{"class":244},"    CREDENTIAL_STORE ",[123,1715,428],{"class":270},[123,1717,926],{"class":244},[123,1719,285],{"class":270},[123,1721,959],{"class":323},[123,1723,285],{"class":270},[123,1725,1005],{"class":398},[123,1727,1582],{"class":270},[123,1729,1730,1733,1735,1737,1739,1741,1743,1745,1748,1750],{"class":125,"line":391},[123,1731,1732],{"class":398},"        RTMBOT_DIRECTORY",[123,1734,271],{"class":270},[123,1736,926],{"class":398},[123,1738,285],{"class":270},[123,1740,1479],{"class":323},[123,1742,934],{"class":270},[123,1744,431],{"class":270},[123,1746,1747],{"class":133},"CREDENTIAL_DAT",[123,1749,431],{"class":270},[123,1751,944],{"class":270},[123,1753,1754],{"class":125,"line":422},[123,1755,1616],{"class":270},[123,1757,1758],{"class":125,"line":440},[123,1759,228],{"emptyLinePlaceholder":227},[123,1761,1762,1765,1768,1770,1774,1776,1779],{"class":125,"line":455},[123,1763,1764],{"class":394},"    def",[123,1766,1767],{"class":398}," process_message",[123,1769,402],{"class":270},[123,1771,1773],{"class":1772},"st21m","self",[123,1775,271],{"class":270},[123,1777,1778],{"class":405}," data",[123,1780,419],{"class":270},[123,1782,1783,1786,1788,1791,1793,1796],{"class":125,"line":474},[123,1784,1785],{"class":244},"        feedback_pattern ",[123,1787,428],{"class":270},[123,1789,1790],{"class":244}," re",[123,1792,285],{"class":270},[123,1794,1795],{"class":398},"compile",[123,1797,1582],{"class":270},[123,1799,1800],{"class":125,"line":493},[123,1801,1802],{"class":220},"            # ここには、slack users list apiに表示されるUから始まるbotのidを入れてください\n",[123,1804,1805,1808,1810,1812,1815,1818,1821,1823,1825,1827,1830,1832,1834,1836,1839,1842,1844,1846],{"class":125,"line":498},[123,1806,1807],{"class":394},"            r",[123,1809,431],{"class":270},[123,1811,285],{"class":133},[123,1813,1814],{"class":270},"*",[123,1816,1817],{"class":133},"\u003C@UAAAAAAA.",[123,1819,1820],{"class":270},"*(",[123,1822,40],{"class":133},[123,1824,1141],{"class":270},[123,1826,285],{"class":133},[123,1828,1829],{"class":270},"*'",[123,1831,271],{"class":270},[123,1833,1790],{"class":398},[123,1835,285],{"class":270},[123,1837,1838],{"class":323},"DOTALL",[123,1840,1841],{"class":270}," |",[123,1843,1790],{"class":398},[123,1845,285],{"class":270},[123,1847,1848],{"class":323},"IGNORECASE\n",[123,1850,1851],{"class":125,"line":527},[123,1852,1853],{"class":270},"        )\n",[123,1855,1856],{"class":125,"line":568},[123,1857,228],{"emptyLinePlaceholder":227},[123,1859,1860,1863,1866,1868,1871,1873,1876,1878,1881,1883,1885,1887,1889,1891,1893],{"class":125,"line":586},[123,1861,1862],{"class":240},"        if",[123,1864,1865],{"class":270}," not",[123,1867,681],{"class":270},[123,1869,1870],{"class":244},"re",[123,1872,285],{"class":270},[123,1874,1875],{"class":398},"match",[123,1877,402],{"class":270},[123,1879,1880],{"class":398},"feedback_pattern",[123,1882,271],{"class":270},[123,1884,1778],{"class":398},[123,1886,934],{"class":270},[123,1888,431],{"class":270},[123,1890,153],{"class":133},[123,1892,431],{"class":270},[123,1894,1895],{"class":270},"])):\n",[123,1897,1898],{"class":125,"line":604},[123,1899,1900],{"class":240},"            return\n",[123,1902,1903],{"class":125,"line":632},[123,1904,228],{"emptyLinePlaceholder":227},[123,1906,1907,1910,1912,1915,1918,1920,1922,1924,1927,1929],{"class":125,"line":653},[123,1908,1909],{"class":244},"        self",[123,1911,285],{"class":270},[123,1913,1914],{"class":323},"CHANNEL_POST",[123,1916,1917],{"class":270}," =",[123,1919,1778],{"class":244},[123,1921,934],{"class":270},[123,1923,431],{"class":270},[123,1925,1926],{"class":133},"channel",[123,1928,431],{"class":270},[123,1930,944],{"class":270},[123,1932,1933],{"class":125,"line":671},[123,1934,228],{"emptyLinePlaceholder":227},[123,1936,1937,1940,1942,1945,1948,1951],{"class":125,"line":676},[123,1938,1939],{"class":244},"        message ",[123,1941,428],{"class":270},[123,1943,1944],{"class":394}," u",[123,1946,1947],{"class":270},"\"",[123,1949,1950],{"class":133},"本日の画像\u002F映像をダウンロードしています！少しお待ち下さい！ ",[123,1952,1953],{"class":270},"\"\n",[123,1955,1956,1958,1961,1964,1967],{"class":125,"line":723},[123,1957,1939],{"class":244},[123,1959,1960],{"class":270},"+=",[123,1962,1963],{"class":270}," \"",[123,1965,1966],{"class":133},"動画の場合は、ダウンロードに時間がかかる場合があります。",[123,1968,1953],{"class":270},[123,1970,1971,1974,1976,1979,1981,1984,1986,1989],{"class":125,"line":741},[123,1972,1973],{"class":244},"        response ",[123,1975,428],{"class":270},[123,1977,1978],{"class":244}," self",[123,1980,285],{"class":270},[123,1982,1983],{"class":323},"slack_client",[123,1985,285],{"class":270},[123,1987,1988],{"class":398},"api_call",[123,1990,1582],{"class":270},[123,1992,1993,1996,1999,2001],{"class":125,"line":762},[123,1994,1995],{"class":270},"            \"",[123,1997,1998],{"class":133},"chat.postMessage",[123,2000,1947],{"class":270},[123,2002,818],{"class":270},[123,2004,2005,2008,2010,2012,2014,2016],{"class":125,"line":779},[123,2006,2007],{"class":405},"            channel",[123,2009,428],{"class":270},[123,2011,1773],{"class":244},[123,2013,285],{"class":270},[123,2015,1914],{"class":323},[123,2017,818],{"class":270},[123,2019,2020,2023,2025,2028],{"class":125,"line":784},[123,2021,2022],{"class":405},"            text",[123,2024,428],{"class":270},[123,2026,2027],{"class":398},"message",[123,2029,818],{"class":270},[123,2031,2032,2035,2037,2040],{"class":125,"line":821},[123,2033,2034],{"class":405},"            link_names",[123,2036,428],{"class":270},[123,2038,2039],{"class":717},"1",[123,2041,818],{"class":270},[123,2043,2044,2047],{"class":125,"line":834},[123,2045,2046],{"class":405},"            as_user",[123,2048,2049],{"class":270},"=True\n",[123,2051,2052],{"class":125,"line":877},[123,2053,1853],{"class":270},[123,2055,2056],{"class":125,"line":886},[123,2057,228],{"emptyLinePlaceholder":227},[123,2059,2060,2062,2064,2067],{"class":125,"line":891},[123,2061,1909],{"class":244},[123,2063,285],{"class":270},[123,2065,2066],{"class":398},"fetch_all_media",[123,2068,490],{"class":270},[123,2070,2071,2073,2075,2078],{"class":125,"line":897},[123,2072,1909],{"class":244},[123,2074,285],{"class":270},[123,2076,2077],{"class":398},"post_random_media",[123,2079,490],{"class":270},[123,2081,2082],{"class":125,"line":918},[123,2083,228],{"emptyLinePlaceholder":227},[123,2085,2086,2088,2091,2093,2095,2097,2100,2102,2104,2106,2108],{"class":125,"line":947},[123,2087,1764],{"class":394},[123,2089,2090],{"class":398}," oauth_login",[123,2092,402],{"class":270},[123,2094,1773],{"class":1772},[123,2096,271],{"class":270},[123,2098,2099],{"class":405}," client_secrets",[123,2101,271],{"class":270},[123,2103,411],{"class":405},[123,2105,271],{"class":270},[123,2107,416],{"class":405},[123,2109,419],{"class":270},[123,2111,2112,2115,2117,2119,2121],{"class":125,"line":989},[123,2113,2114],{"class":244},"        scope ",[123,2116,428],{"class":270},[123,2118,853],{"class":270},[123,2120,434],{"class":133},[123,2122,437],{"class":270},[123,2124,2125,2128,2130,2132,2134],{"class":125,"line":1024},[123,2126,2127],{"class":244},"        user_agent ",[123,2129,428],{"class":270},[123,2131,853],{"class":270},[123,2133,450],{"class":133},[123,2135,437],{"class":270},[123,2137,2138,2141,2143,2145,2147,2149],{"class":125,"line":1056},[123,2139,2140],{"class":244},"        storage ",[123,2142,428],{"class":270},[123,2144,463],{"class":398},[123,2146,402],{"class":270},[123,2148,468],{"class":398},[123,2150,471],{"class":270},[123,2152,2153,2155,2157,2159,2161,2163],{"class":125,"line":1079},[123,2154,635],{"class":244},[123,2156,428],{"class":270},[123,2158,482],{"class":244},[123,2160,285],{"class":270},[123,2162,487],{"class":398},[123,2164,490],{"class":270},[123,2166,2167,2170,2172,2174,2176,2178],{"class":125,"line":1084},[123,2168,2169],{"class":244},"        now_time ",[123,2171,428],{"class":270},[123,2173,267],{"class":244},[123,2175,285],{"class":270},[123,2177,698],{"class":398},[123,2179,490],{"class":270},[123,2181,2182],{"class":125,"line":1102},[123,2183,228],{"emptyLinePlaceholder":227},[123,2185,2186,2188,2190,2192,2194,2196,2198,2200,2202],{"class":125,"line":1124},[123,2187,1862],{"class":240},[123,2189,504],{"class":244},[123,2191,507],{"class":270},[123,2193,510],{"class":270},[123,2195,513],{"class":270},[123,2197,516],{"class":244},[123,2199,285],{"class":270},[123,2201,521],{"class":323},[123,2203,524],{"class":270},[123,2205,2206,2209,2211,2213],{"class":125,"line":1178},[123,2207,2208],{"class":244},"            flow ",[123,2210,428],{"class":270},[123,2212,535],{"class":398},[123,2214,1582],{"class":270},[123,2216,2217,2220],{"class":125,"line":1183},[123,2218,2219],{"class":398},"                client_secrets",[123,2221,818],{"class":270},[123,2223,2224,2227,2229,2231],{"class":125,"line":1229},[123,2225,2226],{"class":405},"                scope",[123,2228,428],{"class":270},[123,2230,549],{"class":398},[123,2232,818],{"class":270},[123,2234,2235,2238,2240,2242,2244],{"class":125,"line":1249},[123,2236,2237],{"class":405},"                redirect_uri",[123,2239,428],{"class":270},[123,2241,431],{"class":270},[123,2243,561],{"class":133},[123,2245,437],{"class":270},[123,2247,2248],{"class":125,"line":1270},[123,2249,2250],{"class":270},"            )\n",[123,2252,2253,2256,2258,2260,2262,2264],{"class":125,"line":1304},[123,2254,2255],{"class":244},"            uri ",[123,2257,428],{"class":270},[123,2259,576],{"class":244},[123,2261,285],{"class":270},[123,2263,581],{"class":398},[123,2265,490],{"class":270},[123,2267,2268,2271,2273,2275,2277,2279],{"class":125,"line":1347},[123,2269,2270],{"class":244},"            webbrowser",[123,2272,285],{"class":270},[123,2274,594],{"class":398},[123,2276,402],{"class":270},[123,2278,599],{"class":398},[123,2280,471],{"class":270},[123,2282,2284,2287,2289,2291,2293,2295,2297,2299,2301,2303],{"class":125,"line":2283},59,[123,2285,2286],{"class":244},"            code ",[123,2288,428],{"class":270},[123,2290,612],{"class":244},[123,2292,402],{"class":270},[123,2294,431],{"class":270},[123,2296,619],{"class":133},[123,2298,431],{"class":270},[123,2300,624],{"class":270},[123,2302,627],{"class":398},[123,2304,490],{"class":270},[123,2306,2308,2311,2313,2315,2317,2319,2321,2323],{"class":125,"line":2307},60,[123,2309,2310],{"class":244},"            credentials ",[123,2312,428],{"class":270},[123,2314,576],{"class":244},[123,2316,285],{"class":270},[123,2318,644],{"class":398},[123,2320,402],{"class":270},[123,2322,25],{"class":398},[123,2324,471],{"class":270},[123,2326,2328,2331,2333,2335,2337,2339],{"class":125,"line":2327},61,[123,2329,2330],{"class":244},"            storage",[123,2332,285],{"class":270},[123,2334,661],{"class":398},[123,2336,402],{"class":270},[123,2338,666],{"class":398},[123,2340,471],{"class":270},[123,2342,2344],{"class":125,"line":2343},62,[123,2345,228],{"emptyLinePlaceholder":227},[123,2347,2349,2351,2353,2355,2357,2359,2361,2364,2366,2368,2370,2372,2374,2376,2378],{"class":125,"line":2348},63,[123,2350,1862],{"class":240},[123,2352,681],{"class":270},[123,2354,666],{"class":244},[123,2356,285],{"class":270},[123,2358,688],{"class":323},[123,2360,691],{"class":270},[123,2362,2363],{"class":244}," now_time",[123,2365,1141],{"class":270},[123,2367,704],{"class":270},[123,2369,707],{"class":398},[123,2371,402],{"class":270},[123,2373,712],{"class":405},[123,2375,428],{"class":270},[123,2377,718],{"class":717},[123,2379,419],{"class":270},[123,2381,2383,2386,2388,2390,2392,2394],{"class":125,"line":2382},64,[123,2384,2385],{"class":244},"            http ",[123,2387,428],{"class":270},[123,2389,731],{"class":244},[123,2391,285],{"class":270},[123,2393,736],{"class":398},[123,2395,490],{"class":270},[123,2397,2399,2401,2403,2405,2407,2409,2411,2413],{"class":125,"line":2398},65,[123,2400,2385],{"class":244},[123,2402,428],{"class":270},[123,2404,516],{"class":244},[123,2406,285],{"class":270},[123,2408,752],{"class":398},[123,2410,402],{"class":270},[123,2412,757],{"class":398},[123,2414,471],{"class":270},[123,2416,2418,2421,2423,2425,2427,2429],{"class":125,"line":2417},66,[123,2419,2420],{"class":244},"            credentials",[123,2422,285],{"class":270},[123,2424,770],{"class":398},[123,2426,402],{"class":270},[123,2428,757],{"class":398},[123,2430,471],{"class":270},[123,2432,2434],{"class":125,"line":2433},67,[123,2435,228],{"emptyLinePlaceholder":227},[123,2437,2439,2442,2444,2446,2448,2450,2452,2454,2456,2458],{"class":125,"line":2438},68,[123,2440,2441],{"class":244},"        gd_client ",[123,2443,428],{"class":270},[123,2445,318],{"class":244},[123,2447,285],{"class":270},[123,2449,324],{"class":323},[123,2451,285],{"class":270},[123,2453,800],{"class":323},[123,2455,285],{"class":270},[123,2457,805],{"class":398},[123,2459,1582],{"class":270},[123,2461,2463,2466,2468,2470],{"class":125,"line":2462},69,[123,2464,2465],{"class":405},"            source",[123,2467,428],{"class":270},[123,2469,815],{"class":398},[123,2471,818],{"class":270},[123,2473,2475,2478,2480,2482],{"class":125,"line":2474},70,[123,2476,2477],{"class":405},"            email",[123,2479,428],{"class":270},[123,2481,829],{"class":398},[123,2483,818],{"class":270},[123,2485,2487,2490],{"class":125,"line":2486},71,[123,2488,2489],{"class":405},"            additional_headers",[123,2491,2492],{"class":270},"={\n",[123,2494,2496,2499,2501,2503,2506,2508,2510,2512,2514,2516,2518,2520],{"class":125,"line":2495},72,[123,2497,2498],{"class":270},"                '",[123,2500,845],{"class":133},[123,2502,431],{"class":270},[123,2504,2505],{"class":270},":",[123,2507,853],{"class":270},[123,2509,856],{"class":133},[123,2511,859],{"class":717},[123,2513,431],{"class":270},[123,2515,864],{"class":270},[123,2517,516],{"class":398},[123,2519,285],{"class":270},[123,2521,2522],{"class":323},"access_token\n",[123,2524,2526],{"class":125,"line":2525},73,[123,2527,2528],{"class":270},"            }\n",[123,2530,2532],{"class":125,"line":2531},74,[123,2533,1853],{"class":270},[123,2535,2537],{"class":125,"line":2536},75,[123,2538,228],{"emptyLinePlaceholder":227},[123,2540,2542,2545],{"class":125,"line":2541},76,[123,2543,2544],{"class":240},"        return",[123,2546,883],{"class":244},[123,2548,2550],{"class":125,"line":2549},77,[123,2551,228],{"emptyLinePlaceholder":227},[123,2553,2555,2557,2560,2562,2564],{"class":125,"line":2554},78,[123,2556,1764],{"class":394},[123,2558,2559],{"class":398}," fetch_all_media",[123,2561,402],{"class":270},[123,2563,1773],{"class":1772},[123,2565,419],{"class":270},[123,2567,2569,2571,2573,2575,2577,2580],{"class":125,"line":2568},79,[123,2570,2441],{"class":244},[123,2572,428],{"class":270},[123,2574,1978],{"class":244},[123,2576,285],{"class":270},[123,2578,2579],{"class":398},"oauth_login",[123,2581,1582],{"class":270},[123,2583,2585,2588,2590,2593],{"class":125,"line":2584},80,[123,2586,2587],{"class":244},"            self",[123,2589,285],{"class":270},[123,2591,2592],{"class":323},"CLIENT_SECRETS",[123,2594,818],{"class":270},[123,2596,2598,2600,2602,2605],{"class":125,"line":2597},81,[123,2599,2587],{"class":244},[123,2601,285],{"class":270},[123,2603,2604],{"class":323},"CREDENTIAL_STORE",[123,2606,818],{"class":270},[123,2608,2610,2612,2614],{"class":125,"line":2609},82,[123,2611,2587],{"class":244},[123,2613,285],{"class":270},[123,2615,2616],{"class":323},"EMAIL\n",[123,2618,2620],{"class":125,"line":2619},83,[123,2621,1853],{"class":270},[123,2623,2625],{"class":125,"line":2624},84,[123,2626,228],{"emptyLinePlaceholder":227},[123,2628,2630,2633,2635,2637,2639,2641],{"class":125,"line":2629},85,[123,2631,2632],{"class":244},"        albums ",[123,2634,428],{"class":270},[123,2636,1092],{"class":244},[123,2638,285],{"class":270},[123,2640,1097],{"class":398},[123,2642,490],{"class":270},[123,2644,2646,2648,2650,2652,2654,2656,2658],{"class":125,"line":2645},86,[123,2647,1232],{"class":240},[123,2649,1108],{"class":244},[123,2651,1111],{"class":240},[123,2653,1114],{"class":244},[123,2655,285],{"class":270},[123,2657,1119],{"class":323},[123,2659,524],{"class":270},[123,2661,2663,2666,2668,2670,2672,2674],{"class":125,"line":2662},87,[123,2664,2665],{"class":244},"            medias ",[123,2667,428],{"class":270},[123,2669,1092],{"class":244},[123,2671,285],{"class":270},[123,2673,1195],{"class":398},[123,2675,1582],{"class":270},[123,2677,2679,2681,2683,2685,2687],{"class":125,"line":2678},88,[123,2680,2498],{"class":270},[123,2682,1202],{"class":133},[123,2684,859],{"class":717},[123,2686,431],{"class":270},[123,2688,2689],{"class":270}," %\n",[123,2691,2693,2696,2698,2700,2702,2704,2706],{"class":125,"line":2692},89,[123,2694,2695],{"class":270},"                (",[123,2697,1150],{"class":398},[123,2699,285],{"class":270},[123,2701,1220],{"class":323},[123,2703,285],{"class":270},[123,2705,153],{"class":323},[123,2707,471],{"class":270},[123,2709,2711],{"class":125,"line":2710},90,[123,2712,2250],{"class":270},[123,2714,2716,2719,2722,2724,2727,2729,2731],{"class":125,"line":2715},91,[123,2717,2718],{"class":240},"            for",[123,2720,2721],{"class":244}," media ",[123,2723,1111],{"class":240},[123,2725,2726],{"class":244}," medias",[123,2728,285],{"class":270},[123,2730,1119],{"class":323},[123,2732,524],{"class":270},[123,2734,2736,2739,2741,2744,2746,2749,2751,2754],{"class":125,"line":2735},92,[123,2737,2738],{"class":244},"                self",[123,2740,285],{"class":270},[123,2742,2743],{"class":323},"MEDIA_ARR",[123,2745,285],{"class":270},[123,2747,2748],{"class":398},"append",[123,2750,402],{"class":270},[123,2752,2753],{"class":398},"media",[123,2755,471],{"class":270},[123,2757,2759],{"class":125,"line":2758},93,[123,2760,228],{"emptyLinePlaceholder":227},[123,2762,2764,2766,2769,2771,2773,2775,2778],{"class":125,"line":2763},94,[123,2765,1764],{"class":394},[123,2767,2768],{"class":398}," get_random_number_in_array",[123,2770,402],{"class":270},[123,2772,1773],{"class":1772},[123,2774,271],{"class":270},[123,2776,2777],{"class":405}," arr",[123,2779,419],{"class":270},[123,2781,2783,2786,2788,2791,2793,2796],{"class":125,"line":2782},95,[123,2784,2785],{"class":244},"        max_length ",[123,2787,428],{"class":270},[123,2789,2790],{"class":398}," len",[123,2792,402],{"class":270},[123,2794,2795],{"class":398},"arr",[123,2797,471],{"class":270},[123,2799,2801,2803,2806,2808,2811,2813,2816,2818,2821],{"class":125,"line":2800},96,[123,2802,2544],{"class":240},[123,2804,2805],{"class":244}," random",[123,2807,285],{"class":270},[123,2809,2810],{"class":398},"randint",[123,2812,402],{"class":270},[123,2814,2815],{"class":717},"0",[123,2817,271],{"class":270},[123,2819,2820],{"class":398}," max_length",[123,2822,471],{"class":270},[123,2824,2826],{"class":125,"line":2825},97,[123,2827,228],{"emptyLinePlaceholder":227},[123,2829,2831,2833,2836,2838,2840],{"class":125,"line":2830},98,[123,2832,1764],{"class":394},[123,2834,2835],{"class":398}," post_random_media",[123,2837,402],{"class":270},[123,2839,1773],{"class":1772},[123,2841,419],{"class":270},[123,2843,2845,2847,2849,2852,2854,2856,2858,2861,2863,2865,2867,2869],{"class":125,"line":2844},99,[123,2846,1909],{"class":244},[123,2848,285],{"class":270},[123,2850,2851],{"class":323},"RANDOM_NUMBER",[123,2853,1917],{"class":270},[123,2855,1978],{"class":244},[123,2857,285],{"class":270},[123,2859,2860],{"class":398},"get_random_number_in_array",[123,2862,402],{"class":270},[123,2864,1773],{"class":244},[123,2866,285],{"class":270},[123,2868,2743],{"class":323},[123,2870,471],{"class":270},[123,2872,2874,2877,2879,2881,2883,2885,2887,2889,2891,2893],{"class":125,"line":2873},100,[123,2875,2876],{"class":244},"        media_object ",[123,2878,428],{"class":270},[123,2880,1978],{"class":244},[123,2882,285],{"class":270},[123,2884,2743],{"class":323},[123,2886,934],{"class":270},[123,2888,1773],{"class":244},[123,2890,285],{"class":270},[123,2892,2851],{"class":323},[123,2894,944],{"class":270},[123,2896,2898,2901,2903,2905,2907,2910,2912,2914,2916,2918,2920,2922,2925,2927],{"class":125,"line":2897},101,[123,2899,2900],{"class":244},"        media_file ",[123,2902,428],{"class":270},[123,2904,1278],{"class":398},[123,2906,402],{"class":270},[123,2908,2909],{"class":398},"media_object",[123,2911,285],{"class":270},[123,2913,1155],{"class":323},[123,2915,285],{"class":270},[123,2917,153],{"class":323},[123,2919,271],{"class":270},[123,2921,853],{"class":270},[123,2923,2924],{"class":133},"wb",[123,2926,431],{"class":270},[123,2928,471],{"class":270},[123,2930,2932,2935,2937,2939,2941,2944,2946,2948],{"class":125,"line":2931},102,[123,2933,2934],{"class":244},"        media_file",[123,2936,285],{"class":270},[123,2938,1312],{"class":398},[123,2940,402],{"class":270},[123,2942,2943],{"class":398},"response",[123,2945,285],{"class":270},[123,2947,1331],{"class":323},[123,2949,471],{"class":270},[123,2951,2953,2955,2957,2959],{"class":125,"line":2952},103,[123,2954,2934],{"class":244},[123,2956,285],{"class":270},[123,2958,1354],{"class":398},[123,2960,490],{"class":270},[123,2962,2964,2967,2969,2971,2973,2975,2978,2980,2983,2985,2987,2990,2992,2994,2996],{"class":125,"line":2963},104,[123,2965,2966],{"class":244},"        media_path ",[123,2968,428],{"class":270},[123,2970,1978],{"class":244},[123,2972,285],{"class":270},[123,2974,1688],{"class":323},[123,2976,2977],{"class":270}," +",[123,2979,1963],{"class":270},[123,2981,2982],{"class":133},"\u002F",[123,2984,1947],{"class":270},[123,2986,2977],{"class":270},[123,2988,2989],{"class":244}," media_object",[123,2991,285],{"class":270},[123,2993,1155],{"class":323},[123,2995,285],{"class":270},[123,2997,2998],{"class":323},"text\n",[123,3000,3002],{"class":125,"line":3001},105,[123,3003,228],{"emptyLinePlaceholder":227},[123,3005,3007,3010,3012,3014,3017,3019,3021,3024,3026,3028,3031,3034],{"class":125,"line":3006},106,[123,3008,3009],{"class":240},"        with",[123,3011,1278],{"class":398},[123,3013,402],{"class":270},[123,3015,3016],{"class":398},"media_path",[123,3018,271],{"class":270},[123,3020,853],{"class":270},[123,3022,3023],{"class":133},"rb",[123,3025,431],{"class":270},[123,3027,1141],{"class":270},[123,3029,3030],{"class":240}," as",[123,3032,3033],{"class":244}," f",[123,3035,524],{"class":270},[123,3037,3039,3042,3044],{"class":125,"line":3038},107,[123,3040,3041],{"class":244},"            param ",[123,3043,428],{"class":270},[123,3045,3046],{"class":270}," {\n",[123,3048,3050,3052,3055,3057,3059,3061,3063,3065],{"class":125,"line":3049},108,[123,3051,2498],{"class":270},[123,3053,3054],{"class":133},"token",[123,3056,431],{"class":270},[123,3058,2505],{"class":270},[123,3060,1978],{"class":244},[123,3062,285],{"class":270},[123,3064,1519],{"class":323},[123,3066,818],{"class":270},[123,3068,3070,3072,3075,3077,3079,3081,3083,3085],{"class":125,"line":3069},109,[123,3071,2498],{"class":270},[123,3073,3074],{"class":133},"channels",[123,3076,431],{"class":270},[123,3078,2505],{"class":270},[123,3080,1978],{"class":244},[123,3082,285],{"class":270},[123,3084,1914],{"class":323},[123,3086,818],{"class":270},[123,3088,3090,3092,3094,3096,3098,3100,3102,3105,3108,3111,3113,3115],{"class":125,"line":3089},110,[123,3091,2498],{"class":270},[123,3093,1155],{"class":133},[123,3095,431],{"class":270},[123,3097,2505],{"class":270},[123,3099,1944],{"class":394},[123,3101,431],{"class":270},[123,3103,3104],{"class":133},"Today",[123,3106,3107],{"class":244},"\\'",[123,3109,3110],{"class":133},"s ",[123,3112,431],{"class":270},[123,3114,2977],{"class":270},[123,3116,3117],{"class":244}," media\n",[123,3119,3121],{"class":125,"line":3120},111,[123,3122,2528],{"class":270},[123,3124,3126,3129,3131,3134,3136,3139],{"class":125,"line":3125},112,[123,3127,3128],{"class":244},"            r ",[123,3130,428],{"class":270},[123,3132,3133],{"class":244}," requests",[123,3135,285],{"class":270},[123,3137,3138],{"class":398},"post",[123,3140,1582],{"class":270},[123,3142,3144,3147,3150,3152],{"class":125,"line":3143},113,[123,3145,3146],{"class":270},"                \"",[123,3148,3149],{"class":133},"https:\u002F\u002Fslack.com\u002Fapi\u002Ffiles.upload",[123,3151,1947],{"class":270},[123,3153,818],{"class":270},[123,3155,3157,3160,3162,3165],{"class":125,"line":3156},114,[123,3158,3159],{"class":405},"                params",[123,3161,1917],{"class":270},[123,3163,3164],{"class":398}," param",[123,3166,818],{"class":270},[123,3168,3170,3173,3175,3178,3180,3183,3185,3187,3189],{"class":125,"line":3169},115,[123,3171,3172],{"class":405},"                files",[123,3174,1917],{"class":270},[123,3176,3177],{"class":270}," {",[123,3179,431],{"class":270},[123,3181,3182],{"class":133},"file",[123,3184,431],{"class":270},[123,3186,2505],{"class":270},[123,3188,3033],{"class":398},[123,3190,3191],{"class":270},"}\n",[123,3193,3195],{"class":125,"line":3194},116,[123,3196,2250],{"class":270},[15,3198,3199],{},"そして、rtmbot ディクレトリで、rtmbot コマンドを入力し、rtmbot サーバーを立ち上げます。\nそのあと、スラックで、@gallery と入力しましょう。(どのチャンネルでも大丈夫です。)",[114,3201,3203],{"className":116,"code":3202,"language":118,"meta":119,"style":119},"$ rtmbot\n",[25,3204,3205],{"__ignoreMap":119},[123,3206,3207,3209],{"class":125,"line":126},[123,3208,130],{"class":129},[123,3210,140],{"class":133},[15,3212,3213,3214,3217],{},"上のコードにある",[25,3215,3216],{},"本日の画像\u002F映像をダウンロードしています！少しお待ち下さい！"," と写真がスラックに流れれば、写真 bot の完了です。",[11,3219,3220],{"id":3220},"参考にしたもの",[72,3222,3223,3230],{},[52,3224,3225],{},[103,3226,3229],{"href":3227,"rel":3228,"target":110},"https:\u002F\u002Fdevelopers.google.com\u002Fpicasa-web\u002Fdocs\u002F1.0\u002Fdevelopers_guide_python",[107,108,109],"Picasa Web API の Documentation",[52,3231,3232],{},[103,3233,3236],{"href":3234,"rel":3235,"target":110},"https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F30474269\u002Fusing-google-picasa-api-with-python",[107,108,109],"Google OAuth の Login のやり方",[3238,3239,3240],"style",{},"html pre.shiki code .s5Dmg, html code.shiki .s5Dmg{--shiki-default:#FFCB6B}html pre.shiki code .sfyAc, html code.shiki .sfyAc{--shiki-default:#C3E88D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s0_hs, html code.shiki .s0_hs{--shiki-default:#546E7A;--shiki-default-font-style:italic}html pre.shiki code .s6cf3, html code.shiki .s6cf3{--shiki-default:#89DDFF;--shiki-default-font-style:italic}html pre.shiki code .svy0-, html code.shiki .svy0-{--shiki-default:#EEFFFF}html pre.shiki code .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}html pre.shiki code .s-wAU, html code.shiki .s-wAU{--shiki-default:#F07178}html pre.shiki code .sJ14y, html code.shiki .sJ14y{--shiki-default:#C792EA}html pre.shiki code .sdLwU, html code.shiki .sdLwU{--shiki-default:#82AAFF}html pre.shiki code .sLFUT, html code.shiki .sLFUT{--shiki-default:#EEFFFF;--shiki-default-font-style:italic}html pre.shiki code .sx098, html code.shiki .sx098{--shiki-default:#F78C6C}html pre.shiki code .st21m, html code.shiki .st21m{--shiki-default:#F07178;--shiki-default-font-style:italic}",{"title":119,"searchDepth":224,"depth":224,"links":3242},[3243,3244,3245,3246,3249],{"id":13,"depth":224,"text":13},{"id":20,"depth":224,"text":20},{"id":34,"depth":224,"text":34},{"id":47,"depth":224,"text":47,"children":3247},[3248],{"id":70,"depth":231,"text":70},{"id":3220,"depth":224,"text":3220},[3251,3252],"Tech","Python","Google Photo からランダムに写真を取得し、 Slack に送信する Bot を作ったので、作り方をまとめました",false,"md",{},"\u002Ftech\u002Fgoogle-photo-slack-bot",null,"2017-10-14",{"title":6,"description":3253},"tech\u002Fgoogle-photo-slack-bot","6wgfKE8rlOfNs6BqlZCOs8jWQgbYOoidnYXktmDoogs",{"id":3264,"title":3265,"body":3266,"categories":5651,"description":5653,"draft":3254,"extension":3255,"meta":5654,"navigation":227,"path":5655,"priority":3258,"publishedAt":5656,"secret":3254,"seo":5657,"stem":5658,"updatedAt":5656,"__hash__":5659},"posts\u002Ftech\u002Fgoogle-app-script-writen-in-es6.md","【Google Apps Script】ES6を使ったGoogle Apps Scriptの開発",{"type":8,"value":3267,"toc":5643},[3268,3270,3289,3292,3305,3308,3318,3649,3652,3655,3658,3690,3693,3718,3721,3725,3728,3881,4055,4058,4089,4092,5620,5623,5637,5640],[11,3269,20],{"id":20},[72,3271,3272,3286],{},[52,3273,3274,3275],{},"ある日、GAS での開発をしていたとき、\n",[72,3276,3277,3280,3283],{},[52,3278,3279],{},"自分「レビュー提出しました」",[52,3281,3282],{},"上司「ES6 のほうがわかりやすいから、そっちで書いてみようぜ」",[52,3284,3285],{},"自分「え、GAS って、ES6 対応しているのかな...」",[52,3287,3288],{},"こうして、少しググってみて、あまり情報源がないことを知ったため、記事にまとめようと思いました。",[11,3290,3291],{"id":3291},"準備するもの",[72,3293,3294,3302],{},[52,3295,3296,3297],{},"npm でライブラリをインストールできる環境。\n",[72,3298,3299],{},[52,3300,3301],{},"Node.js は、ndenv でインストールするのがおすすめ。",[52,3303,3304],{},"GAS ファイル。",[11,3306,3307],{"id":3307},"今回使うプログラムの例",[72,3309,3310],{},[52,3311,3312,3313],{},"簡単にセルの背景の色を変更する GAS ファイル。\n",[72,3314,3315],{},[52,3316,3317],{},"毎日決められた色の中で、ランダムにセルの背景の色を変更する。",[114,3319,3324],{"className":3320,"code":3321,"filename":3322,"language":3323,"meta":2505,"style":119},"language-js shiki shiki-themes material-theme","class ChangeColor{\n    constructor(color){\n        this.parent_sheet = SpreadsheetApp.openById(親シートのID);\n        this.source_sheet = this.parent_sheet.getSheetByName(子シートの名前);\n        this.color = color;\n    }\n\n    changeBackgroundColor(){\n        let range = this.source_sheet.getRange(\"A1:A3\");\n        range.setBackgroundColor(this.color);\n    }\n}\n\n\u002F\u002F GASファイルのトリガーにセットする関数です。\nfunction trigger(){\n    let  color_array = ['red', 'blue', 'green'];\n    let random_number = [Math.floor(Math.random()*color_array.length)];\n    let trigger = new ChangeColor(color_array[random_number]);\n    trigger.changeBackgroundColor();\n}\n","ChangeColor.js","js",[25,3325,3326,3336,3349,3377,3405,3418,3423,3427,3435,3467,3488,3492,3496,3500,3505,3515,3558,3604,3631,3645],{"__ignoreMap":119},[123,3327,3328,3330,3333],{"class":125,"line":126},[123,3329,1435],{"class":394},[123,3331,3332],{"class":129}," ChangeColor",[123,3334,3335],{"class":270},"{\n",[123,3337,3338,3341,3343,3346],{"class":125,"line":224},[123,3339,3340],{"class":394},"    constructor",[123,3342,402],{"class":270},[123,3344,3345],{"class":405},"color",[123,3347,3348],{"class":270},"){\n",[123,3350,3351,3354,3357,3359,3362,3364,3367,3369,3372,3374],{"class":125,"line":231},[123,3352,3353],{"class":270},"        this.",[123,3355,3356],{"class":244},"parent_sheet",[123,3358,1917],{"class":270},[123,3360,3361],{"class":244}," SpreadsheetApp",[123,3363,285],{"class":270},[123,3365,3366],{"class":398},"openById",[123,3368,402],{"class":323},[123,3370,3371],{"class":244},"親シートのID",[123,3373,1141],{"class":323},[123,3375,3376],{"class":270},";\n",[123,3378,3379,3381,3384,3386,3389,3391,3393,3396,3398,3401,3403],{"class":125,"line":237},[123,3380,3353],{"class":270},[123,3382,3383],{"class":244},"source_sheet",[123,3385,1917],{"class":270},[123,3387,3388],{"class":270}," this.",[123,3390,3356],{"class":244},[123,3392,285],{"class":270},[123,3394,3395],{"class":398},"getSheetByName",[123,3397,402],{"class":323},[123,3399,3400],{"class":244},"子シートの名前",[123,3402,1141],{"class":323},[123,3404,3376],{"class":270},[123,3406,3407,3409,3411,3413,3416],{"class":125,"line":248},[123,3408,3353],{"class":270},[123,3410,3345],{"class":244},[123,3412,1917],{"class":270},[123,3414,3415],{"class":244}," color",[123,3417,3376],{"class":270},[123,3419,3420],{"class":125,"line":256},[123,3421,3422],{"class":270},"    }\n",[123,3424,3425],{"class":125,"line":277},[123,3426,228],{"emptyLinePlaceholder":227},[123,3428,3429,3432],{"class":125,"line":296},[123,3430,3431],{"class":323},"    changeBackgroundColor",[123,3433,3434],{"class":270},"(){\n",[123,3436,3437,3440,3443,3445,3447,3449,3451,3454,3456,3458,3461,3463,3465],{"class":125,"line":313},[123,3438,3439],{"class":394},"        let",[123,3441,3442],{"class":244}," range",[123,3444,1917],{"class":270},[123,3446,3388],{"class":270},[123,3448,3383],{"class":244},[123,3450,285],{"class":270},[123,3452,3453],{"class":398},"getRange",[123,3455,402],{"class":323},[123,3457,1947],{"class":270},[123,3459,3460],{"class":133},"A1:A3",[123,3462,1947],{"class":270},[123,3464,1141],{"class":323},[123,3466,3376],{"class":270},[123,3468,3469,3472,3474,3477,3479,3482,3484,3486],{"class":125,"line":332},[123,3470,3471],{"class":244},"        range",[123,3473,285],{"class":270},[123,3475,3476],{"class":398},"setBackgroundColor",[123,3478,402],{"class":323},[123,3480,3481],{"class":270},"this.",[123,3483,3345],{"class":244},[123,3485,1141],{"class":323},[123,3487,3376],{"class":270},[123,3489,3490],{"class":125,"line":344},[123,3491,3422],{"class":270},[123,3493,3494],{"class":125,"line":356},[123,3495,3191],{"class":270},[123,3497,3498],{"class":125,"line":364},[123,3499,228],{"emptyLinePlaceholder":227},[123,3501,3502],{"class":125,"line":372},[123,3503,3504],{"class":220},"\u002F\u002F GASファイルのトリガーにセットする関数です。\n",[123,3506,3507,3510,3513],{"class":125,"line":380},[123,3508,3509],{"class":394},"function",[123,3511,3512],{"class":398}," trigger",[123,3514,3434],{"class":270},[123,3516,3517,3520,3523,3525,3528,3530,3533,3535,3537,3539,3542,3544,3546,3548,3551,3553,3556],{"class":125,"line":385},[123,3518,3519],{"class":394},"    let",[123,3521,3522],{"class":244},"  color_array",[123,3524,1917],{"class":270},[123,3526,3527],{"class":323}," [",[123,3529,431],{"class":270},[123,3531,3532],{"class":133},"red",[123,3534,431],{"class":270},[123,3536,271],{"class":270},[123,3538,853],{"class":270},[123,3540,3541],{"class":133},"blue",[123,3543,431],{"class":270},[123,3545,271],{"class":270},[123,3547,853],{"class":270},[123,3549,3550],{"class":133},"green",[123,3552,431],{"class":270},[123,3554,3555],{"class":323},"]",[123,3557,3376],{"class":270},[123,3559,3560,3562,3565,3567,3569,3572,3574,3577,3579,3581,3583,3586,3589,3591,3594,3596,3599,3602],{"class":125,"line":391},[123,3561,3519],{"class":394},[123,3563,3564],{"class":244}," random_number",[123,3566,1917],{"class":270},[123,3568,3527],{"class":323},[123,3570,3571],{"class":244},"Math",[123,3573,285],{"class":270},[123,3575,3576],{"class":398},"floor",[123,3578,402],{"class":323},[123,3580,3571],{"class":244},[123,3582,285],{"class":270},[123,3584,3585],{"class":398},"random",[123,3587,3588],{"class":323},"()",[123,3590,1814],{"class":270},[123,3592,3593],{"class":244},"color_array",[123,3595,285],{"class":270},[123,3597,3598],{"class":244},"length",[123,3600,3601],{"class":323},")]",[123,3603,3376],{"class":270},[123,3605,3606,3608,3610,3612,3615,3617,3619,3621,3623,3626,3629],{"class":125,"line":422},[123,3607,3519],{"class":394},[123,3609,3512],{"class":244},[123,3611,1917],{"class":270},[123,3613,3614],{"class":270}," new",[123,3616,3332],{"class":398},[123,3618,402],{"class":323},[123,3620,3593],{"class":244},[123,3622,934],{"class":323},[123,3624,3625],{"class":244},"random_number",[123,3627,3628],{"class":323},"])",[123,3630,3376],{"class":270},[123,3632,3633,3636,3638,3641,3643],{"class":125,"line":440},[123,3634,3635],{"class":244},"    trigger",[123,3637,285],{"class":270},[123,3639,3640],{"class":398},"changeBackgroundColor",[123,3642,3588],{"class":323},[123,3644,3376],{"class":270},[123,3646,3647],{"class":125,"line":455},[123,3648,3191],{"class":270},[15,3650,3651],{},"JS でクラスがかけるようになったのは、本当に魅力的で、感動です...。\nしかし、案の定 GAS ファイルは、ES6 に対応せず、上の書き方だとエラーを起こしてしまいます...。\nそこで、上のファイルをクラスを用いた方法で書かれていない JS に変換する必要があります。\n今から、それを書いていきます。",[11,3653,3654],{"id":3654},"ファイル変換環境準備",[15,3656,3657],{},"npm の必要なライブラリのインストール\nローカルに作業ディレクトリを作成し、そのなかで、下のコマンドを入力し、必要なライブラリをインストールしてください。",[114,3659,3661],{"className":116,"code":3660,"language":118,"meta":119,"style":119},"$ npm install --save-dev babel-cli babel-preset-latest browserify babelify gasify\n",[25,3662,3663],{"__ignoreMap":119},[123,3664,3665,3667,3670,3672,3675,3678,3681,3684,3687],{"class":125,"line":126},[123,3666,130],{"class":129},[123,3668,3669],{"class":133}," npm",[123,3671,137],{"class":133},[123,3673,3674],{"class":133}," --save-dev",[123,3676,3677],{"class":133}," babel-cli",[123,3679,3680],{"class":133}," babel-preset-latest",[123,3682,3683],{"class":133}," browserify",[123,3685,3686],{"class":133}," babelify",[123,3688,3689],{"class":133}," gasify\n",[15,3691,3692],{},"次に、.babelrc という設定ファイルに下の１行を入れます。",[114,3694,3696],{"className":116,"code":3695,"language":118,"meta":119,"style":119},"$ echo '{ \"presets\": [\"latest\"] }' > .babelrc\n",[25,3697,3698],{"__ignoreMap":119},[123,3699,3700,3702,3705,3707,3710,3712,3715],{"class":125,"line":126},[123,3701,130],{"class":129},[123,3703,3704],{"class":133}," echo",[123,3706,853],{"class":270},[123,3708,3709],{"class":133},"{ \"presets\": [\"latest\"] }",[123,3711,431],{"class":270},[123,3713,3714],{"class":270}," >",[123,3716,3717],{"class":133}," .babelrc\n",[15,3719,3720],{},"これで、環境の準備は整いました。",[11,3722,3724],{"id":3723},"es6からgasファイルに変換","ES6からGASファイルに変換",[15,3726,3727],{},"そして、ファイルを変更。ここを一番に気をつけて欲しく、クラスとトリガーにセットする関数で、ファイルを分けていただきたいです。",[114,3729,3731],{"className":3320,"code":3730,"filename":3322,"language":3323,"meta":119,"style":119},"export class ChangeColor{\n    constructor(color){\n        this.parent_sheet = SpreadsheetApp.openById(親シートのID);\n        this.source_sheet = this.parent_sheet.getSheetByName(子シートの名前);\n        this.color = color;\n    }\n\n    changeBackgroundColor(){\n        let range = this.source_sheet.getRange(\"A1:A3\");\n        range.setBackgroundColor(this.color);\n    }\n}\n",[25,3732,3733,3745,3755,3777,3801,3813,3817,3821,3827,3855,3873,3877],{"__ignoreMap":119},[123,3734,3735,3738,3741,3743],{"class":125,"line":126},[123,3736,3737],{"class":240},"export",[123,3739,3740],{"class":394}," class",[123,3742,3332],{"class":129},[123,3744,3335],{"class":270},[123,3746,3747,3749,3751,3753],{"class":125,"line":224},[123,3748,3340],{"class":394},[123,3750,402],{"class":270},[123,3752,3345],{"class":405},[123,3754,3348],{"class":270},[123,3756,3757,3759,3761,3763,3765,3767,3769,3771,3773,3775],{"class":125,"line":231},[123,3758,3353],{"class":270},[123,3760,3356],{"class":244},[123,3762,1917],{"class":270},[123,3764,3361],{"class":244},[123,3766,285],{"class":270},[123,3768,3366],{"class":398},[123,3770,402],{"class":323},[123,3772,3371],{"class":244},[123,3774,1141],{"class":323},[123,3776,3376],{"class":270},[123,3778,3779,3781,3783,3785,3787,3789,3791,3793,3795,3797,3799],{"class":125,"line":237},[123,3780,3353],{"class":270},[123,3782,3383],{"class":244},[123,3784,1917],{"class":270},[123,3786,3388],{"class":270},[123,3788,3356],{"class":244},[123,3790,285],{"class":270},[123,3792,3395],{"class":398},[123,3794,402],{"class":323},[123,3796,3400],{"class":244},[123,3798,1141],{"class":323},[123,3800,3376],{"class":270},[123,3802,3803,3805,3807,3809,3811],{"class":125,"line":248},[123,3804,3353],{"class":270},[123,3806,3345],{"class":244},[123,3808,1917],{"class":270},[123,3810,3415],{"class":244},[123,3812,3376],{"class":270},[123,3814,3815],{"class":125,"line":256},[123,3816,3422],{"class":270},[123,3818,3819],{"class":125,"line":277},[123,3820,228],{"emptyLinePlaceholder":227},[123,3822,3823,3825],{"class":125,"line":296},[123,3824,3431],{"class":323},[123,3826,3434],{"class":270},[123,3828,3829,3831,3833,3835,3837,3839,3841,3843,3845,3847,3849,3851,3853],{"class":125,"line":313},[123,3830,3439],{"class":394},[123,3832,3442],{"class":244},[123,3834,1917],{"class":270},[123,3836,3388],{"class":270},[123,3838,3383],{"class":244},[123,3840,285],{"class":270},[123,3842,3453],{"class":398},[123,3844,402],{"class":323},[123,3846,1947],{"class":270},[123,3848,3460],{"class":133},[123,3850,1947],{"class":270},[123,3852,1141],{"class":323},[123,3854,3376],{"class":270},[123,3856,3857,3859,3861,3863,3865,3867,3869,3871],{"class":125,"line":332},[123,3858,3471],{"class":244},[123,3860,285],{"class":270},[123,3862,3476],{"class":398},[123,3864,402],{"class":323},[123,3866,3481],{"class":270},[123,3868,3345],{"class":244},[123,3870,1141],{"class":323},[123,3872,3376],{"class":270},[123,3874,3875],{"class":125,"line":344},[123,3876,3422],{"class":270},[123,3878,3879],{"class":125,"line":356},[123,3880,3191],{"class":270},[114,3882,3885],{"className":3320,"code":3883,"filename":3884,"language":3323,"meta":119,"style":119},"\u002F\u002F fromのあとには、ChangeColorファイルのパスを書いてください\nimport {ChangeColor} from '.\u002FChangeColor';\n\nglobal.trigger = function() {\n    let color_array = ['red', 'blue', 'green'];\n    let random_number = [Math.floor(Math.random()*color_array.length)];\n    let trigger = new ChangeColor(color_array[random_number]);\n    trigger.changeBackgroundColor();\n};\n\n","trigger.js",[25,3886,3887,3892,3916,3920,3939,3976,4014,4038,4050],{"__ignoreMap":119},[123,3888,3889],{"class":125,"line":126},[123,3890,3891],{"class":220},"\u002F\u002F fromのあとには、ChangeColorファイルのパスを書いてください\n",[123,3893,3894,3896,3898,3901,3904,3907,3909,3912,3914],{"class":125,"line":224},[123,3895,241],{"class":240},[123,3897,3177],{"class":270},[123,3899,3900],{"class":244},"ChangeColor",[123,3902,3903],{"class":270},"}",[123,3905,3906],{"class":240}," from",[123,3908,853],{"class":270},[123,3910,3911],{"class":133},".\u002FChangeColor",[123,3913,431],{"class":270},[123,3915,3376],{"class":270},[123,3917,3918],{"class":125,"line":231},[123,3919,228],{"emptyLinePlaceholder":227},[123,3921,3922,3925,3927,3930,3932,3935,3937],{"class":125,"line":237},[123,3923,3924],{"class":244},"global",[123,3926,285],{"class":270},[123,3928,3929],{"class":398},"trigger",[123,3931,1917],{"class":270},[123,3933,3934],{"class":394}," function",[123,3936,3588],{"class":270},[123,3938,3046],{"class":270},[123,3940,3941,3943,3946,3948,3950,3952,3954,3956,3958,3960,3962,3964,3966,3968,3970,3972,3974],{"class":125,"line":248},[123,3942,3519],{"class":394},[123,3944,3945],{"class":244}," color_array",[123,3947,1917],{"class":270},[123,3949,3527],{"class":323},[123,3951,431],{"class":270},[123,3953,3532],{"class":133},[123,3955,431],{"class":270},[123,3957,271],{"class":270},[123,3959,853],{"class":270},[123,3961,3541],{"class":133},[123,3963,431],{"class":270},[123,3965,271],{"class":270},[123,3967,853],{"class":270},[123,3969,3550],{"class":133},[123,3971,431],{"class":270},[123,3973,3555],{"class":323},[123,3975,3376],{"class":270},[123,3977,3978,3980,3982,3984,3986,3988,3990,3992,3994,3996,3998,4000,4002,4004,4006,4008,4010,4012],{"class":125,"line":256},[123,3979,3519],{"class":394},[123,3981,3564],{"class":244},[123,3983,1917],{"class":270},[123,3985,3527],{"class":323},[123,3987,3571],{"class":244},[123,3989,285],{"class":270},[123,3991,3576],{"class":398},[123,3993,402],{"class":323},[123,3995,3571],{"class":244},[123,3997,285],{"class":270},[123,3999,3585],{"class":398},[123,4001,3588],{"class":323},[123,4003,1814],{"class":270},[123,4005,3593],{"class":244},[123,4007,285],{"class":270},[123,4009,3598],{"class":244},[123,4011,3601],{"class":323},[123,4013,3376],{"class":270},[123,4015,4016,4018,4020,4022,4024,4026,4028,4030,4032,4034,4036],{"class":125,"line":277},[123,4017,3519],{"class":394},[123,4019,3512],{"class":244},[123,4021,1917],{"class":270},[123,4023,3614],{"class":270},[123,4025,3332],{"class":398},[123,4027,402],{"class":323},[123,4029,3593],{"class":244},[123,4031,934],{"class":323},[123,4033,3625],{"class":244},[123,4035,3628],{"class":323},[123,4037,3376],{"class":270},[123,4039,4040,4042,4044,4046,4048],{"class":125,"line":296},[123,4041,3635],{"class":244},[123,4043,285],{"class":270},[123,4045,3640],{"class":398},[123,4047,3588],{"class":323},[123,4049,3376],{"class":270},[123,4051,4052],{"class":125,"line":313},[123,4053,4054],{"class":270},"};\n",[15,4056,4057],{},"最後に、下のコマンドで、上の ChangeColor.js を変換。",[114,4059,4061],{"className":116,"code":4060,"language":118,"meta":119,"style":119},"$ browserify -t babelify -p gasify trigger.jsのパス -o 変換後のコードを書き込むファイルへのパス\n",[25,4062,4063],{"__ignoreMap":119},[123,4064,4065,4067,4069,4072,4074,4077,4080,4083,4086],{"class":125,"line":126},[123,4066,130],{"class":129},[123,4068,3683],{"class":133},[123,4070,4071],{"class":133}," -t",[123,4073,3686],{"class":133},[123,4075,4076],{"class":133}," -p",[123,4078,4079],{"class":133}," gasify",[123,4081,4082],{"class":133}," trigger.jsのパス",[123,4084,4085],{"class":133}," -o",[123,4087,4088],{"class":133}," 変換後のコードを書き込むファイルへのパス\n",[11,4090,4091],{"id":4091},"変換後",[114,4093,4095],{"className":3320,"code":4094,"filename":3884,"language":3323,"meta":119,"style":119},"var global = this;function trigger() {\n}(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o\u003Cr.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n    value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i \u003C props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ChangeColor = exports.ChangeColor = function () {\n    function ChangeColor(color) {\n        _classCallCheck(this, ChangeColor);\n\n        this.parent_sheet = SpreadsheetApp.openById(親シートのID);\n        this.source_sheet = this.parent_sheet.getSheetByName('src');\n        this.color = color;\n    }\n\n    _createClass(ChangeColor, [{\n        key: 'changeBackgroundColor',\n        value: function changeBackgroundColor() {\n            var range = this.source_sheet.getRange(\"A1:A3\");\n            range.setBackgroundColor(this.color);\n        }\n    }]);\n\n    return ChangeColor;\n}();\n\n},{}],2:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar _ChangeColor = require('.\u002FChangeColor');\n\nglobal.trigger = function () {\n    var color_array = ['red', 'blue', 'green'];\n    var random_number = [Math.floor(Math.random() * color_array.length)];\n    var trigger = new _ChangeColor.ChangeColor(color_array[random_number]);\n    trigger.changeBackgroundColor();\n};\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\".\u002FChangeColor\":1}]},{},[2]);\n",[25,4096,4097,4118,4606,4617,4621,4647,4658,4666,4670,4955,4959,5025,5029,5050,5065,5081,5085,5107,5135,5147,5151,5155,5170,5185,5201,5230,5249,5254,5263,5267,5275,5283,5287,5319,5331,5341,5345,5368,5372,5388,5425,5464,5492,5504,5508,5512,5590],{"__ignoreMap":119},[123,4098,4099,4102,4105,4107,4110,4112,4114,4116],{"class":125,"line":126},[123,4100,4101],{"class":394},"var",[123,4103,4104],{"class":244}," global ",[123,4106,428],{"class":270},[123,4108,4109],{"class":270}," this;",[123,4111,3509],{"class":394},[123,4113,3512],{"class":398},[123,4115,3588],{"class":270},[123,4117,3046],{"class":270},[123,4119,4120,4122,4124,4126,4129,4131,4134,4136,4139,4141,4144,4147,4149,4152,4154,4157,4159,4162,4164,4166,4168,4171,4173,4175,4177,4179,4182,4184,4186,4188,4190,4192,4194,4196,4198,4200,4203,4206,4209,4211,4213,4215,4217,4220,4223,4226,4228,4230,4232,4234,4236,4238,4240,4243,4245,4247,4249,4252,4254,4256,4258,4260,4262,4265,4267,4269,4272,4274,4276,4278,4280,4282,4284,4286,4288,4291,4294,4296,4298,4301,4303,4306,4308,4310,4312,4314,4316,4318,4320,4323,4325,4327,4329,4331,4333,4336,4338,4340,4343,4345,4347,4350,4352,4354,4356,4358,4360,4362,4365,4368,4370,4372,4374,4377,4379,4381,4383,4386,4388,4391,4393,4395,4397,4399,4401,4404,4406,4408,4411,4413,4415,4417,4419,4421,4423,4425,4427,4429,4431,4433,4435,4437,4439,4442,4444,4446,4448,4450,4453,4455,4457,4459,4461,4463,4465,4467,4469,4471,4473,4475,4477,4479,4481,4483,4485,4487,4489,4491,4493,4495,4497,4499,4501,4503,4505,4507,4509,4511,4513,4515,4517,4519,4521,4524,4526,4528,4531,4533,4535,4537,4539,4542,4544,4546,4548,4550,4552,4555,4557,4560,4562,4564,4566,4568,4570,4572,4574,4576,4578,4581,4583,4585,4587,4589,4591,4593,4595,4597,4600,4602,4604],{"class":125,"line":224},[123,4121,3903],{"class":270},[123,4123,402],{"class":244},[123,4125,3509],{"class":394},[123,4127,4128],{"class":398}," e",[123,4130,402],{"class":270},[123,4132,4133],{"class":405},"t",[123,4135,271],{"class":270},[123,4137,4138],{"class":405},"n",[123,4140,271],{"class":270},[123,4142,4143],{"class":405},"r",[123,4145,4146],{"class":270},"){",[123,4148,3509],{"class":394},[123,4150,4151],{"class":398}," s",[123,4153,402],{"class":270},[123,4155,4156],{"class":405},"o",[123,4158,271],{"class":270},[123,4160,4161],{"class":405},"u",[123,4163,4146],{"class":270},[123,4165,900],{"class":240},[123,4167,402],{"class":323},[123,4169,4170],{"class":270},"!",[123,4172,4138],{"class":244},[123,4174,934],{"class":323},[123,4176,4156],{"class":244},[123,4178,3628],{"class":323},[123,4180,4181],{"class":270},"{",[123,4183,900],{"class":240},[123,4185,402],{"class":323},[123,4187,4170],{"class":270},[123,4189,4133],{"class":244},[123,4191,934],{"class":323},[123,4193,4156],{"class":244},[123,4195,3628],{"class":323},[123,4197,4181],{"class":270},[123,4199,4101],{"class":394},[123,4201,4202],{"class":244}," a",[123,4204,4205],{"class":270},"=typeof",[123,4207,4208],{"class":244}," require",[123,4210,906],{"class":270},[123,4212,1947],{"class":270},[123,4214,3509],{"class":133},[123,4216,1947],{"class":270},[123,4218,4219],{"class":270},"&&",[123,4221,4222],{"class":244},"require",[123,4224,4225],{"class":270},";",[123,4227,900],{"class":240},[123,4229,402],{"class":323},[123,4231,4170],{"class":270},[123,4233,4161],{"class":244},[123,4235,4219],{"class":270},[123,4237,103],{"class":244},[123,4239,1141],{"class":323},[123,4241,4242],{"class":240},"return",[123,4244,4202],{"class":398},[123,4246,402],{"class":323},[123,4248,4156],{"class":244},[123,4250,4251],{"class":270},",!",[123,4253,2815],{"class":717},[123,4255,1141],{"class":323},[123,4257,4225],{"class":270},[123,4259,900],{"class":240},[123,4261,402],{"class":323},[123,4263,4264],{"class":244},"i",[123,4266,1141],{"class":323},[123,4268,4242],{"class":240},[123,4270,4271],{"class":398}," i",[123,4273,402],{"class":323},[123,4275,4156],{"class":244},[123,4277,4251],{"class":270},[123,4279,2815],{"class":717},[123,4281,1141],{"class":323},[123,4283,4225],{"class":270},[123,4285,4101],{"class":394},[123,4287,3033],{"class":244},[123,4289,4290],{"class":270},"=new",[123,4292,4293],{"class":398}," Error",[123,4295,402],{"class":323},[123,4297,1947],{"class":270},[123,4299,4300],{"class":133},"Cannot find module '",[123,4302,1947],{"class":270},[123,4304,4305],{"class":270},"+",[123,4307,4156],{"class":244},[123,4309,4305],{"class":270},[123,4311,1947],{"class":270},[123,4313,431],{"class":133},[123,4315,1947],{"class":270},[123,4317,1141],{"class":323},[123,4319,4225],{"class":270},[123,4321,4322],{"class":240},"throw",[123,4324,3033],{"class":244},[123,4326,285],{"class":270},[123,4328,25],{"class":244},[123,4330,428],{"class":270},[123,4332,1947],{"class":270},[123,4334,4335],{"class":133},"MODULE_NOT_FOUND",[123,4337,1947],{"class":270},[123,4339,271],{"class":270},[123,4341,4342],{"class":244},"f",[123,4344,3903],{"class":270},[123,4346,4101],{"class":394},[123,4348,4349],{"class":244}," l",[123,4351,428],{"class":270},[123,4353,4138],{"class":244},[123,4355,934],{"class":323},[123,4357,4156],{"class":244},[123,4359,3555],{"class":323},[123,4361,840],{"class":270},[123,4363,4364],{"class":323},"exports",[123,4366,4367],{"class":270},":{}};",[123,4369,4133],{"class":244},[123,4371,934],{"class":323},[123,4373,4156],{"class":244},[123,4375,4376],{"class":323},"][",[123,4378,2815],{"class":717},[123,4380,3555],{"class":323},[123,4382,285],{"class":270},[123,4384,4385],{"class":398},"call",[123,4387,402],{"class":323},[123,4389,4390],{"class":244},"l",[123,4392,285],{"class":270},[123,4394,4364],{"class":244},[123,4396,271],{"class":270},[123,4398,3509],{"class":394},[123,4400,402],{"class":270},[123,4402,4403],{"class":405},"e",[123,4405,4146],{"class":270},[123,4407,4101],{"class":394},[123,4409,4410],{"class":244}," n",[123,4412,428],{"class":270},[123,4414,4133],{"class":244},[123,4416,934],{"class":323},[123,4418,4156],{"class":244},[123,4420,4376],{"class":323},[123,4422,2039],{"class":717},[123,4424,4376],{"class":323},[123,4426,4403],{"class":244},[123,4428,3555],{"class":323},[123,4430,4225],{"class":270},[123,4432,4242],{"class":240},[123,4434,4151],{"class":398},[123,4436,402],{"class":323},[123,4438,4138],{"class":244},[123,4440,4441],{"class":270},"?",[123,4443,4138],{"class":244},[123,4445,2505],{"class":270},[123,4447,4403],{"class":244},[123,4449,1141],{"class":323},[123,4451,4452],{"class":270},"},",[123,4454,4390],{"class":244},[123,4456,271],{"class":270},[123,4458,4390],{"class":244},[123,4460,285],{"class":270},[123,4462,4364],{"class":244},[123,4464,271],{"class":270},[123,4466,4403],{"class":244},[123,4468,271],{"class":270},[123,4470,4133],{"class":244},[123,4472,271],{"class":270},[123,4474,4138],{"class":244},[123,4476,271],{"class":270},[123,4478,4143],{"class":244},[123,4480,1141],{"class":323},[123,4482,3903],{"class":270},[123,4484,4242],{"class":240},[123,4486,4410],{"class":244},[123,4488,934],{"class":323},[123,4490,4156],{"class":244},[123,4492,3555],{"class":323},[123,4494,285],{"class":270},[123,4496,4364],{"class":244},[123,4498,3903],{"class":270},[123,4500,4101],{"class":394},[123,4502,4271],{"class":244},[123,4504,4205],{"class":270},[123,4506,4208],{"class":244},[123,4508,906],{"class":270},[123,4510,1947],{"class":270},[123,4512,3509],{"class":133},[123,4514,1947],{"class":270},[123,4516,4219],{"class":270},[123,4518,4222],{"class":244},[123,4520,4225],{"class":270},[123,4522,4523],{"class":240},"for",[123,4525,402],{"class":323},[123,4527,4101],{"class":394},[123,4529,4530],{"class":244}," o",[123,4532,428],{"class":270},[123,4534,2815],{"class":717},[123,4536,4225],{"class":270},[123,4538,4156],{"class":244},[123,4540,4541],{"class":270},"\u003C",[123,4543,4143],{"class":244},[123,4545,285],{"class":270},[123,4547,3598],{"class":244},[123,4549,4225],{"class":270},[123,4551,4156],{"class":244},[123,4553,4554],{"class":270},"++",[123,4556,1141],{"class":323},[123,4558,4559],{"class":398},"s",[123,4561,402],{"class":323},[123,4563,4143],{"class":244},[123,4565,934],{"class":323},[123,4567,4156],{"class":244},[123,4569,3628],{"class":323},[123,4571,4225],{"class":270},[123,4573,4242],{"class":240},[123,4575,4151],{"class":244},[123,4577,3903],{"class":270},[123,4579,4580],{"class":244},")(",[123,4582,4181],{"class":270},[123,4584,2039],{"class":717},[123,4586,2505],{"class":270},[123,4588,934],{"class":244},[123,4590,3509],{"class":394},[123,4592,402],{"class":270},[123,4594,4222],{"class":405},[123,4596,271],{"class":270},[123,4598,4599],{"class":405},"module",[123,4601,271],{"class":270},[123,4603,4364],{"class":405},[123,4605,3348],{"class":270},[123,4607,4608,4610,4613,4615],{"class":125,"line":231},[123,4609,431],{"class":270},[123,4611,4612],{"class":133},"use strict",[123,4614,431],{"class":270},[123,4616,3376],{"class":270},[123,4618,4619],{"class":125,"line":237},[123,4620,228],{"emptyLinePlaceholder":227},[123,4622,4623,4626,4628,4631,4633,4636,4638,4641,4643,4645],{"class":125,"line":248},[123,4624,4625],{"class":244},"Object",[123,4627,285],{"class":270},[123,4629,4630],{"class":398},"defineProperty",[123,4632,402],{"class":323},[123,4634,4635],{"class":270},"exports,",[123,4637,1963],{"class":270},[123,4639,4640],{"class":133},"__esModule",[123,4642,1947],{"class":270},[123,4644,271],{"class":270},[123,4646,3046],{"class":270},[123,4648,4649,4652,4654],{"class":125,"line":256},[123,4650,4651],{"class":323},"    value",[123,4653,2505],{"class":270},[123,4655,4657],{"class":4656},"sbqyR"," true\n",[123,4659,4660,4662,4664],{"class":125,"line":277},[123,4661,3903],{"class":270},[123,4663,1141],{"class":323},[123,4665,3376],{"class":270},[123,4667,4668],{"class":125,"line":296},[123,4669,228],{"emptyLinePlaceholder":227},[123,4671,4672,4674,4677,4679,4681,4684,4686,4688,4691,4693,4696,4698,4701,4703,4705,4708,4710,4712,4714,4716,4719,4721,4723,4725,4727,4729,4731,4733,4735,4737,4740,4742,4745,4748,4750,4752,4754,4756,4758,4760,4762,4764,4767,4769,4771,4773,4775,4778,4781,4783,4785,4787,4790,4792,4795,4797,4800,4802,4804,4807,4809,4812,4814,4816,4819,4821,4824,4826,4828,4830,4833,4835,4837,4839,4841,4843,4845,4847,4850,4852,4854,4856,4858,4861,4863,4866,4868,4870,4873,4875,4878,4880,4883,4885,4887,4889,4891,4894,4896,4899,4901,4903,4905,4908,4910,4912,4914,4916,4918,4920,4923,4925,4927,4929,4931,4933,4935,4937,4939,4941,4944,4946,4949,4951,4953],{"class":125,"line":313},[123,4673,4101],{"class":394},[123,4675,4676],{"class":244}," _createClass",[123,4678,1917],{"class":270},[123,4680,3934],{"class":394},[123,4682,4683],{"class":270}," ()",[123,4685,3177],{"class":270},[123,4687,3934],{"class":394},[123,4689,4690],{"class":398}," defineProperties",[123,4692,402],{"class":270},[123,4694,4695],{"class":405},"target",[123,4697,271],{"class":270},[123,4699,4700],{"class":405}," props",[123,4702,1141],{"class":270},[123,4704,3177],{"class":270},[123,4706,4707],{"class":240}," for",[123,4709,681],{"class":323},[123,4711,4101],{"class":394},[123,4713,4271],{"class":244},[123,4715,1917],{"class":270},[123,4717,4718],{"class":717}," 0",[123,4720,4225],{"class":270},[123,4722,4271],{"class":244},[123,4724,704],{"class":270},[123,4726,4700],{"class":244},[123,4728,285],{"class":270},[123,4730,3598],{"class":244},[123,4732,4225],{"class":270},[123,4734,4271],{"class":244},[123,4736,4554],{"class":270},[123,4738,4739],{"class":323},") ",[123,4741,4181],{"class":270},[123,4743,4744],{"class":394}," var",[123,4746,4747],{"class":244}," descriptor",[123,4749,1917],{"class":270},[123,4751,4700],{"class":244},[123,4753,934],{"class":323},[123,4755,4264],{"class":244},[123,4757,3555],{"class":323},[123,4759,4225],{"class":270},[123,4761,4747],{"class":244},[123,4763,285],{"class":270},[123,4765,4766],{"class":244},"enumerable",[123,4768,1917],{"class":270},[123,4770,4747],{"class":244},[123,4772,285],{"class":270},[123,4774,4766],{"class":244},[123,4776,4777],{"class":270}," ||",[123,4779,4780],{"class":4656}," false",[123,4782,4225],{"class":270},[123,4784,4747],{"class":244},[123,4786,285],{"class":270},[123,4788,4789],{"class":244},"configurable",[123,4791,1917],{"class":270},[123,4793,4794],{"class":4656}," true",[123,4796,4225],{"class":270},[123,4798,4799],{"class":240}," if",[123,4801,681],{"class":323},[123,4803,1947],{"class":270},[123,4805,4806],{"class":133},"value",[123,4808,1947],{"class":270},[123,4810,4811],{"class":270}," in",[123,4813,4747],{"class":244},[123,4815,4739],{"class":323},[123,4817,4818],{"class":244},"descriptor",[123,4820,285],{"class":270},[123,4822,4823],{"class":244},"writable",[123,4825,1917],{"class":270},[123,4827,4794],{"class":4656},[123,4829,4225],{"class":270},[123,4831,4832],{"class":244}," Object",[123,4834,285],{"class":270},[123,4836,4630],{"class":398},[123,4838,402],{"class":323},[123,4840,4695],{"class":244},[123,4842,271],{"class":270},[123,4844,4747],{"class":244},[123,4846,285],{"class":270},[123,4848,4849],{"class":244},"key",[123,4851,271],{"class":270},[123,4853,4747],{"class":244},[123,4855,1141],{"class":323},[123,4857,4225],{"class":270},[123,4859,4860],{"class":270}," }",[123,4862,4860],{"class":270},[123,4864,4865],{"class":240}," return",[123,4867,3934],{"class":394},[123,4869,681],{"class":270},[123,4871,4872],{"class":405},"Constructor",[123,4874,271],{"class":270},[123,4876,4877],{"class":405}," protoProps",[123,4879,271],{"class":270},[123,4881,4882],{"class":405}," staticProps",[123,4884,1141],{"class":270},[123,4886,3177],{"class":270},[123,4888,4799],{"class":240},[123,4890,681],{"class":323},[123,4892,4893],{"class":244},"protoProps",[123,4895,4739],{"class":323},[123,4897,4898],{"class":398},"defineProperties",[123,4900,402],{"class":323},[123,4902,4872],{"class":129},[123,4904,285],{"class":270},[123,4906,4907],{"class":244},"prototype",[123,4909,271],{"class":270},[123,4911,4877],{"class":244},[123,4913,1141],{"class":323},[123,4915,4225],{"class":270},[123,4917,4799],{"class":240},[123,4919,681],{"class":323},[123,4921,4922],{"class":244},"staticProps",[123,4924,4739],{"class":323},[123,4926,4898],{"class":398},[123,4928,402],{"class":323},[123,4930,4872],{"class":244},[123,4932,271],{"class":270},[123,4934,4882],{"class":244},[123,4936,1141],{"class":323},[123,4938,4225],{"class":270},[123,4940,4865],{"class":240},[123,4942,4943],{"class":244}," Constructor",[123,4945,4225],{"class":270},[123,4947,4948],{"class":270}," };",[123,4950,4860],{"class":270},[123,4952,3588],{"class":323},[123,4954,3376],{"class":270},[123,4956,4957],{"class":125,"line":332},[123,4958,228],{"emptyLinePlaceholder":227},[123,4960,4961,4963,4966,4968,4971,4973,4975,4977,4979,4981,4983,4985,4987,4989,4992,4994,4997,4999,5002,5004,5007,5009,5011,5014,5016,5018,5020,5022],{"class":125,"line":344},[123,4962,3509],{"class":394},[123,4964,4965],{"class":398}," _classCallCheck",[123,4967,402],{"class":270},[123,4969,4970],{"class":405},"instance",[123,4972,271],{"class":270},[123,4974,4943],{"class":405},[123,4976,1141],{"class":270},[123,4978,3177],{"class":270},[123,4980,4799],{"class":240},[123,4982,681],{"class":323},[123,4984,4170],{"class":270},[123,4986,402],{"class":323},[123,4988,4970],{"class":244},[123,4990,4991],{"class":270}," instanceof",[123,4993,4943],{"class":129},[123,4995,4996],{"class":323},")) ",[123,4998,4181],{"class":270},[123,5000,5001],{"class":240}," throw",[123,5003,3614],{"class":270},[123,5005,5006],{"class":398}," TypeError",[123,5008,402],{"class":323},[123,5010,1947],{"class":270},[123,5012,5013],{"class":133},"Cannot call a class as a function",[123,5015,1947],{"class":270},[123,5017,1141],{"class":323},[123,5019,4225],{"class":270},[123,5021,4860],{"class":270},[123,5023,5024],{"class":270}," }\n",[123,5026,5027],{"class":125,"line":356},[123,5028,228],{"emptyLinePlaceholder":227},[123,5030,5031,5033,5035,5037,5040,5042,5044,5046,5048],{"class":125,"line":364},[123,5032,4101],{"class":394},[123,5034,3332],{"class":244},[123,5036,1917],{"class":270},[123,5038,5039],{"class":270}," exports.",[123,5041,3900],{"class":398},[123,5043,1917],{"class":270},[123,5045,3934],{"class":394},[123,5047,4683],{"class":270},[123,5049,3046],{"class":270},[123,5051,5052,5055,5057,5059,5061,5063],{"class":125,"line":372},[123,5053,5054],{"class":394},"    function",[123,5056,3332],{"class":398},[123,5058,402],{"class":270},[123,5060,3345],{"class":405},[123,5062,1141],{"class":270},[123,5064,3046],{"class":270},[123,5066,5067,5070,5072,5075,5077,5079],{"class":125,"line":380},[123,5068,5069],{"class":398},"        _classCallCheck",[123,5071,402],{"class":323},[123,5073,5074],{"class":270},"this,",[123,5076,3332],{"class":244},[123,5078,1141],{"class":323},[123,5080,3376],{"class":270},[123,5082,5083],{"class":125,"line":385},[123,5084,228],{"emptyLinePlaceholder":227},[123,5086,5087,5089,5091,5093,5095,5097,5099,5101,5103,5105],{"class":125,"line":391},[123,5088,3353],{"class":270},[123,5090,3356],{"class":244},[123,5092,1917],{"class":270},[123,5094,3361],{"class":244},[123,5096,285],{"class":270},[123,5098,3366],{"class":398},[123,5100,402],{"class":323},[123,5102,3371],{"class":244},[123,5104,1141],{"class":323},[123,5106,3376],{"class":270},[123,5108,5109,5111,5113,5115,5117,5119,5121,5123,5125,5127,5129,5131,5133],{"class":125,"line":422},[123,5110,3353],{"class":270},[123,5112,3383],{"class":244},[123,5114,1917],{"class":270},[123,5116,3388],{"class":270},[123,5118,3356],{"class":244},[123,5120,285],{"class":270},[123,5122,3395],{"class":398},[123,5124,402],{"class":323},[123,5126,431],{"class":270},[123,5128,1336],{"class":133},[123,5130,431],{"class":270},[123,5132,1141],{"class":323},[123,5134,3376],{"class":270},[123,5136,5137,5139,5141,5143,5145],{"class":125,"line":440},[123,5138,3353],{"class":270},[123,5140,3345],{"class":244},[123,5142,1917],{"class":270},[123,5144,3415],{"class":244},[123,5146,3376],{"class":270},[123,5148,5149],{"class":125,"line":455},[123,5150,3422],{"class":270},[123,5152,5153],{"class":125,"line":474},[123,5154,228],{"emptyLinePlaceholder":227},[123,5156,5157,5160,5162,5164,5166,5168],{"class":125,"line":493},[123,5158,5159],{"class":398},"    _createClass",[123,5161,402],{"class":323},[123,5163,3900],{"class":244},[123,5165,271],{"class":270},[123,5167,3527],{"class":323},[123,5169,3335],{"class":270},[123,5171,5172,5175,5177,5179,5181,5183],{"class":125,"line":498},[123,5173,5174],{"class":323},"        key",[123,5176,2505],{"class":270},[123,5178,853],{"class":270},[123,5180,3640],{"class":133},[123,5182,431],{"class":270},[123,5184,818],{"class":270},[123,5186,5187,5190,5192,5194,5197,5199],{"class":125,"line":527},[123,5188,5189],{"class":398},"        value",[123,5191,2505],{"class":270},[123,5193,3934],{"class":394},[123,5195,5196],{"class":398}," changeBackgroundColor",[123,5198,3588],{"class":270},[123,5200,3046],{"class":270},[123,5202,5203,5206,5208,5210,5212,5214,5216,5218,5220,5222,5224,5226,5228],{"class":125,"line":568},[123,5204,5205],{"class":394},"            var",[123,5207,3442],{"class":244},[123,5209,1917],{"class":270},[123,5211,3388],{"class":270},[123,5213,3383],{"class":244},[123,5215,285],{"class":270},[123,5217,3453],{"class":398},[123,5219,402],{"class":323},[123,5221,1947],{"class":270},[123,5223,3460],{"class":133},[123,5225,1947],{"class":270},[123,5227,1141],{"class":323},[123,5229,3376],{"class":270},[123,5231,5232,5235,5237,5239,5241,5243,5245,5247],{"class":125,"line":586},[123,5233,5234],{"class":244},"            range",[123,5236,285],{"class":270},[123,5238,3476],{"class":398},[123,5240,402],{"class":323},[123,5242,3481],{"class":270},[123,5244,3345],{"class":244},[123,5246,1141],{"class":323},[123,5248,3376],{"class":270},[123,5250,5251],{"class":125,"line":604},[123,5252,5253],{"class":270},"        }\n",[123,5255,5256,5259,5261],{"class":125,"line":632},[123,5257,5258],{"class":270},"    }",[123,5260,3628],{"class":323},[123,5262,3376],{"class":270},[123,5264,5265],{"class":125,"line":653},[123,5266,228],{"emptyLinePlaceholder":227},[123,5268,5269,5271,5273],{"class":125,"line":671},[123,5270,880],{"class":240},[123,5272,3332],{"class":244},[123,5274,3376],{"class":270},[123,5276,5277,5279,5281],{"class":125,"line":676},[123,5278,3903],{"class":270},[123,5280,3588],{"class":323},[123,5282,3376],{"class":270},[123,5284,5285],{"class":125,"line":723},[123,5286,228],{"emptyLinePlaceholder":227},[123,5288,5289,5292,5294,5296,5299,5301,5303,5305,5307,5309,5311,5313,5315,5317],{"class":125,"line":741},[123,5290,5291],{"class":270},"},{}",[123,5293,3555],{"class":244},[123,5295,271],{"class":270},[123,5297,5298],{"class":717},"2",[123,5300,2505],{"class":270},[123,5302,934],{"class":244},[123,5304,3509],{"class":394},[123,5306,402],{"class":270},[123,5308,4222],{"class":405},[123,5310,271],{"class":270},[123,5312,4599],{"class":405},[123,5314,271],{"class":270},[123,5316,4364],{"class":405},[123,5318,3348],{"class":270},[123,5320,5321,5323,5325,5327,5329],{"class":125,"line":762},[123,5322,402],{"class":323},[123,5324,3509],{"class":394},[123,5326,681],{"class":270},[123,5328,3924],{"class":405},[123,5330,3348],{"class":270},[123,5332,5333,5335,5337,5339],{"class":125,"line":779},[123,5334,431],{"class":270},[123,5336,4612],{"class":133},[123,5338,431],{"class":270},[123,5340,3376],{"class":270},[123,5342,5343],{"class":125,"line":784},[123,5344,228],{"emptyLinePlaceholder":227},[123,5346,5347,5349,5352,5354,5356,5358,5360,5362,5364,5366],{"class":125,"line":821},[123,5348,4101],{"class":394},[123,5350,5351],{"class":244}," _ChangeColor",[123,5353,1917],{"class":270},[123,5355,4208],{"class":398},[123,5357,402],{"class":323},[123,5359,431],{"class":270},[123,5361,3911],{"class":133},[123,5363,431],{"class":270},[123,5365,1141],{"class":323},[123,5367,3376],{"class":270},[123,5369,5370],{"class":125,"line":834},[123,5371,228],{"emptyLinePlaceholder":227},[123,5373,5374,5376,5378,5380,5382,5384,5386],{"class":125,"line":877},[123,5375,3924],{"class":244},[123,5377,285],{"class":270},[123,5379,3929],{"class":398},[123,5381,1917],{"class":270},[123,5383,3934],{"class":394},[123,5385,4683],{"class":270},[123,5387,3046],{"class":270},[123,5389,5390,5393,5395,5397,5399,5401,5403,5405,5407,5409,5411,5413,5415,5417,5419,5421,5423],{"class":125,"line":886},[123,5391,5392],{"class":394},"    var",[123,5394,3945],{"class":244},[123,5396,1917],{"class":270},[123,5398,3527],{"class":323},[123,5400,431],{"class":270},[123,5402,3532],{"class":133},[123,5404,431],{"class":270},[123,5406,271],{"class":270},[123,5408,853],{"class":270},[123,5410,3541],{"class":133},[123,5412,431],{"class":270},[123,5414,271],{"class":270},[123,5416,853],{"class":270},[123,5418,3550],{"class":133},[123,5420,431],{"class":270},[123,5422,3555],{"class":323},[123,5424,3376],{"class":270},[123,5426,5427,5429,5431,5433,5435,5437,5439,5441,5443,5445,5447,5449,5452,5454,5456,5458,5460,5462],{"class":125,"line":891},[123,5428,5392],{"class":394},[123,5430,3564],{"class":244},[123,5432,1917],{"class":270},[123,5434,3527],{"class":323},[123,5436,3571],{"class":244},[123,5438,285],{"class":270},[123,5440,3576],{"class":398},[123,5442,402],{"class":323},[123,5444,3571],{"class":244},[123,5446,285],{"class":270},[123,5448,3585],{"class":398},[123,5450,5451],{"class":323},"() ",[123,5453,1814],{"class":270},[123,5455,3945],{"class":244},[123,5457,285],{"class":270},[123,5459,3598],{"class":244},[123,5461,3601],{"class":323},[123,5463,3376],{"class":270},[123,5465,5466,5468,5470,5472,5474,5476,5478,5480,5482,5484,5486,5488,5490],{"class":125,"line":897},[123,5467,5392],{"class":394},[123,5469,3512],{"class":244},[123,5471,1917],{"class":270},[123,5473,3614],{"class":270},[123,5475,5351],{"class":244},[123,5477,285],{"class":270},[123,5479,3900],{"class":398},[123,5481,402],{"class":323},[123,5483,3593],{"class":244},[123,5485,934],{"class":323},[123,5487,3625],{"class":244},[123,5489,3628],{"class":323},[123,5491,3376],{"class":270},[123,5493,5494,5496,5498,5500,5502],{"class":125,"line":918},[123,5495,3635],{"class":244},[123,5497,285],{"class":270},[123,5499,3640],{"class":398},[123,5501,3588],{"class":323},[123,5503,3376],{"class":270},[123,5505,5506],{"class":125,"line":947},[123,5507,4054],{"class":270},[123,5509,5510],{"class":125,"line":989},[123,5511,228],{"emptyLinePlaceholder":227},[123,5513,5514,5516,5518,5520,5522,5524,5527,5530,5533,5535,5538,5540,5543,5545,5547,5550,5552,5554,5556,5558,5560,5562,5564,5566,5568,5571,5573,5575,5577,5579,5581,5583,5585,5588],{"class":125,"line":1024},[123,5515,3903],{"class":270},[123,5517,1141],{"class":323},[123,5519,285],{"class":270},[123,5521,4385],{"class":398},[123,5523,402],{"class":323},[123,5525,5526],{"class":270},"this,typeof",[123,5528,5529],{"class":244}," global",[123,5531,5532],{"class":270}," !==",[123,5534,1963],{"class":270},[123,5536,5537],{"class":133},"undefined",[123,5539,1947],{"class":270},[123,5541,5542],{"class":270}," ?",[123,5544,5529],{"class":244},[123,5546,850],{"class":270},[123,5548,5549],{"class":270}," typeof",[123,5551,1978],{"class":244},[123,5553,5532],{"class":270},[123,5555,1963],{"class":270},[123,5557,5537],{"class":133},[123,5559,1947],{"class":270},[123,5561,5542],{"class":270},[123,5563,1978],{"class":244},[123,5565,850],{"class":270},[123,5567,5549],{"class":270},[123,5569,5570],{"class":244}," window",[123,5572,5532],{"class":270},[123,5574,1963],{"class":270},[123,5576,5537],{"class":133},[123,5578,1947],{"class":270},[123,5580,5542],{"class":270},[123,5582,5570],{"class":244},[123,5584,850],{"class":270},[123,5586,5587],{"class":270}," {}",[123,5589,471],{"class":323},[123,5591,5592,5595,5597,5599,5601,5603,5605,5607,5609,5612,5614,5616,5618],{"class":125,"line":1056},[123,5593,5594],{"class":270},"},{",[123,5596,1947],{"class":270},[123,5598,3911],{"class":323},[123,5600,1947],{"class":270},[123,5602,2505],{"class":270},[123,5604,2039],{"class":717},[123,5606,3903],{"class":270},[123,5608,3555],{"class":244},[123,5610,5611],{"class":270},"},{},",[123,5613,934],{"class":244},[123,5615,5298],{"class":717},[123,5617,3628],{"class":244},[123,5619,3376],{"class":270},[15,5621,5622],{},"これで、es6 で書いたファイルでも、GAS で読み込んでくれるファイルの完成です。上の変換後のファイルを GAS ファイルにペーストし、trigger 関数を動かせば、セルの色は、変化していきます。",[15,5624,5625,5629,5633],{},[91,5626],{"alt":5627,"src":5628},"スクリーンショット 2017-05-03 15.23.27.png","https:\u002F\u002Fqiita-image-store.s3.amazonaws.com\u002F0\u002F152032\u002F7a0bcbe2-d882-db46-a718-a5302c8e88c1.png",[91,5630],{"alt":5631,"src":5632},"スクリーンショット 2017-05-03 15.29.45.png","https:\u002F\u002Fqiita-image-store.s3.amazonaws.com\u002F0\u002F152032\u002F49f60241-c98b-07ff-9f74-18c49955d055.png",[91,5634],{"alt":5635,"src":5636},"スクリーンショット 2017-05-03 15.33.41.png","https:\u002F\u002Fqiita-image-store.s3.amazonaws.com\u002F0\u002F152032\u002Fc5dbeeb6-7746-d827-dee7-83fe9e42d6d8.png",[15,5638,5639],{},"HAPPY GAS LIFE",[3238,5641,5642],{},"html pre.shiki code .sJ14y, html code.shiki .sJ14y{--shiki-default:#C792EA}html pre.shiki code .s5Dmg, html code.shiki .s5Dmg{--shiki-default:#FFCB6B}html pre.shiki code .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}html pre.shiki code .sLFUT, html code.shiki .sLFUT{--shiki-default:#EEFFFF;--shiki-default-font-style:italic}html pre.shiki code .svy0-, html code.shiki .svy0-{--shiki-default:#EEFFFF}html pre.shiki code .sdLwU, html code.shiki .sdLwU{--shiki-default:#82AAFF}html pre.shiki code .s-wAU, html code.shiki .s-wAU{--shiki-default:#F07178}html pre.shiki code .sfyAc, html code.shiki .sfyAc{--shiki-default:#C3E88D}html pre.shiki code .s0_hs, html code.shiki .s0_hs{--shiki-default:#546E7A;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s6cf3, html code.shiki .s6cf3{--shiki-default:#89DDFF;--shiki-default-font-style:italic}html pre.shiki code .sx098, html code.shiki .sx098{--shiki-default:#F78C6C}html pre.shiki code .sbqyR, html code.shiki .sbqyR{--shiki-default:#FF9CAC}",{"title":119,"searchDepth":224,"depth":224,"links":5644},[5645,5646,5647,5648,5649,5650],{"id":20,"depth":224,"text":20},{"id":3291,"depth":224,"text":3291},{"id":3307,"depth":224,"text":3307},{"id":3654,"depth":224,"text":3654},{"id":3723,"depth":224,"text":3724},{"id":4091,"depth":224,"text":4091},[3251,5652],"Google App Scripts","Google Apps Script で ES6 の JavaScript で開発するときの Tips です。",{},"\u002Ftech\u002Fgoogle-app-script-writen-in-es6","2017-05-03",{"title":3265,"description":5653},"tech\u002Fgoogle-app-script-writen-in-es6","V6BqimWhQIeuDla62z16FK2Ch9nnnun-HLwNPVyUA1s",1779506295106]