Month: June 2019

GAS(GoogleAppsScript)からシンプルにAPIを叩く方法(Twitter API)

GAS(GoogleAppsScript)からシンプルにAPIを叩く方法(Twitter API) 文系には難しい記事が多いので、なるべくシンプルに書いてみる 試しに使うのは Twitter API ーーーーーーー ※前提として、こちらのページからtwitter appを作ることが必要 https://developer.twitter.com/apps Appを作ったら、Consumer API keys(API key、API secret key )を入手して、Base64でエンコードしてください 詳細のやり方は以下が参考になる Twitter APIのOAuthToken取得方法 ーーーーーーー まず、TwitterのAPIを叩くためにTokenをもらってくる Curlで叩くとこんな感じ 【】の中は適宜変更してください 叩くとtokenが返ってくる これと同じことをGASでやってみるとこんな感じ UrlFetchApp.fetch(url,options)で、end pointのURLと、認証情報などのOptionsを送る 結果も帰ってきている もちろん、上で得たtokenを使ってAPI叩くときも同じようにやる GET statuses/user_timeline curlはこちら 試しにホリエモンさんのアカウントを使う GASにするとこうなる 今回getなのでpayloadはなし 結果も出てきている

GAS(Google Apps Script)でSlack BotにPostするお話

GAS(Google Apps Script)を使ってSlack BotにPostするお話 このモチベーションは、GASを使えば簡単に、スクリプトのスケジュール実行ができるので Botとの相性が良さそうと思ったのがきっかけ 参考: Google Apps Scriptはスケジューリングできるって まずはSlackのLibrary Keyを登録 「Resources」>「Libraries」 バージョンはひとまず最新にしておく ポストするコードはこんな感じ myFuncrtionを実行するといける 最初は認証やら聞かれるのでOKしておく Variablesの部分は以下を参考に GAS(Google Apps Script)の小ネタ〜変数   slack botの作り方は以下を参考に Office365のOutlook APIをpythonで叩いてSlackに本日と翌営業日の予定をPostしようとしてみる(4)Slack Appの作成

GAS(Google Apps Script)の小ネタ〜変数

GAS(Google Apps Script)のすごい小ネタ その3 変数を使いたいとき、特に、Secret Keyなど直接書きたくない奴は、「PropertiesService」を使う 実行してログを見ると無事に格納されている 変数の設定はUIからも可能 「File」>「Project propaties」 その名の通り、User propatiesはユーザーごとの変数で、Script propatiesはスクリプトごとの変数 Secret keyとかを格納するならUser propatiesに入れるのが良さそう 前は「UserPropaties」を使っていたんだけど、使おうとすると以下のようなエラーが出る もうじき使えなくなるそうなので、代替の「PropertiesService」を使った方が無難 「PropertiesService」の詳細の使い方は以下 Class PropertiesService 設定されていないと、「Undefined」が返ってくる わかりやすい

Office365のOutlook APIをpythonで叩いてSlackに本日と翌営業日の予定をPostしようとしてみる(5)本日と翌営業日の予定をPostしようとしてみる

フルコードはこちら https://github.com/yoshi-island/o365_slack_work 前回の記事はこちら 本日と翌営業日の予定をPostしようとしてみる ごめんなさい、まだSlack Botレビュー中なので、Slackにポストはまだできていない でもこの通りにやればできるはず わかりやすいように、一旦ポストする内容をprintするようにしています python-slackclientを使うので、 python-slackclientをpipでインストール 同じ階層の先ほど作成したpassword_list.pyの内容に 先ほど控えたslackのtokenと、ポストしたいチャンネルのIDを記載 (チャンネルIDはブラウザでSlackチャンネルにアクセスした際のURLに記載されている) 同じ階層に以下のポストするこのようなファイルを作成する 汎用的でなくてすみませんが、以下の変数は自身の環境に合わせて書き換えとく これで実行すると、本日の予定と、次の出勤日(月〜金)の予定がPostされる いつの予定を出力したいかは「## get next business day events」を操作してくださいませ。 まだBotが動かないので、一旦print結果でご容赦、、 土曜日の場合は当日と翌月曜の予定が記載される 日〜木曜日の場合は当日と翌日の予定が記載される 金曜日の場合は当日と翌月曜の予定が記載される うん、とりあえず必要な情報取れてる。 Trouble Shooting Slack Botの投稿がうまくいかない場合は、Slack Distributionのチェックが全て付いていないかも ちょっと面倒くさいけど、全てがチェックつくように規約確認したり、Botの説明を記載したり頑張ってください。

Office365のOutlook APIをpythonで叩いてSlackに本日と翌営業日の予定をPostしようとしてみる(4)Slack Appの作成

Office365のOutlook APIをpythonで叩いてSlackに本日と翌営業日の予定をPostしようとしてみる しようとしてみるという理由は、slack botの申請がまだ降りていないので、実際にslackのポストまでは試せていないせいということ、、、 フルコードはこちら https://github.com/yoshi-island/o365_slack_work 前回の記事はこちら Slack Appの作成 以下ページからSlack Botを作っていく(Slackアカウントとワークスペースはある前提) https://api.slack.com/apps 以下の手順で作成していく。 基本的に、Botを作成した後、「Basic Information」と「Manage Distribution」のページで全て緑チェックがつくように操作していく (規約チェックとかBotの説明文追加とか結構大変) 最後にSubimitし、Slack社のレビュー?が通ったら晴れて使えるようになる OAuth Tokenは大事に控えておく すぐSlackのページにアプリ自体は追加されるが、レビュー状況はアプリのページから確認できる 続きはこちら

Office365のOutlook APIをpythonで叩いてSlackに本日と翌営業日の予定をPostしようとしてみる(3)Azure appからカレンダー一覧を取得する

Office365のOutlook APIをpythonで叩いてSlackに本日と翌営業日の予定をPostしようとしてみる しようとしてみるという理由は、slack botの申請がまだ降りていないので、実際にslackのポストまでは試せていないせいということ、、、 フルコードはこちら https://github.com/yoshi-island/o365_slack_work 前回の記事はこちら Python環境整備 Pythonは3.5.0でやる python-o365をインストール python必要モジュールをインストール python-o365にrequirements.txtが入っているのでそれらをダウンロードすれば良い これで無事にモジュールが入った Azureとの接続確認(Azure appからカレンダー一覧を取得する) 同じ階層にパスワードファイルを作成する 先ほど控えておいた、client idとclient secretを記載する 同じ階層に、このようなファイルを作成する 実行するとカレンダー一覧が取得できる 初回(o365_token.txtが無いと)は、Paste the authenticated url here: と聞かれるので Visit the following url to give consent: の後ろにあるURLにアクセスし、返ってきたURLを貼り付けると実行できる ここまでくればAzure(Office365)側はOK Trouble Shooting 以下のようなエラーが出たら、Azure Appを作る際に、Supported account typesに”Accounts in any organizational directory and personal Microsoft accounts (e.g. Skype, Xbox, Outlook.com)”を選択していない可能性があるので見直すべし 続きはこちら

Office365のOutlook APIをpythonで叩いてSlackに本日と翌営業日の予定をPostしようとしてみる(2)Azure App作成

Office365のOutlook APIをpythonで叩いてSlackに本日と翌営業日の予定をPostしようとしてみる しようとしてみるという理由は、slack botの申請がまだ降りていないので、実際にslackのポストまでは試せていないせいということ、、、 フルコードはこちら https://github.com/yoshi-island/o365_slack_work 前回の記事はこちら Azure App作成 次にAzure Appを作成する まずはAzure Portalにアクセス、先ほど作成したOffice 365のアカウントで入れる https://portal.azure.com/ 以下の手順で作成していく。 続きはこちら

Office365のOutlook APIをpythonで叩いてSlackに本日と翌営業日の予定をPostしようとしてみる(1)Office365トライアルアカウント作成

Office365のOutlook APIをpythonで叩いてSlackに本日と翌営業日の予定をPostしようとしてみる しようとしてみるという理由は、slack botの申請がまだ降りていないので、実際にslackのポストまでは試せていないせいということ、、、 フルコードはこちら https://github.com/yoshi-island/o365_slack_work Office365トライアルアカウント作成 まずはOutlookのアカウントをゲット 有料プランはお高いので、無料トライアルを登録 Office 365 を無料で試す 登録できたら以下からOutlookが確認できる https://outlook.live.com/calendar/ 一旦こんな感じでスケジュールが入っているとする CalenderとTaskという二種類のカレンダーを作っているので、今回は両方ともPostする 続きはこちら