GitHub

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のページにアプリ自体は追加されるが、レビュー状況はアプリのページから確認できる 続きはこちら

localで動作確認していたSNS Appと紐づいたアプリをAWSに移行するときに忘れてはいけないこと

localで動作確認していたSNS Appと紐づいたアプリをAWSに移行するときに忘れてはいけないこと この辺の続き DjangoでSNSログイン機能を実装させる4(TwitterLogin実装まで) #1 SNS Appの方でCallback URLを更新する(忘れがち) Githubの方 twitterの方 #2 settings.pyのALLOWED_HOSTSに追記 こちらも忘れがち

DjangoでSNSログイン機能を実装させる3(decoupleでKeyを安全保管するまで)

DjangoでSNSログイン機能を実装させる2(Githubログイン機能実装まで)の続き お気づきと思いますが、このままではkeyがsettings.pyにベタが記されているので、以下記事を参考にdecoupleで別ファイルから呼び出すようにする How to Use Python Decouple 備忘:コンテナログインのコマンド 必要モジュールのインストール .envファイルを作成し、keyを定義する このファイルは安全に保管するべきなので、.gitignoreに記載するなどして、gitにpushしないようにする settings.pyの方は以下のように変更する 続きはDjangoでSNSログイン機能を実装させる4(TwitterLogin実装まで)

DjangoでSNSログイン機能を実装させる1(コンテナ作成と起動まで)

こういう画面で、通常ログインではなくて、SNSアカウントでログインができるように実装したい 今回は、GithubとTwitterアカウントでログインできるようにする 以下の記事を参考に進める How to Add Social Login to Django まずはDockerでコンテナを立ち上げる ほとんどこちらと同じ話 Django on Docker超入門1(ロケットの画面まで) 適当なワークディレクトリで以下のようにファイルを作成する 各ファイルの中身は以下の通り コンテナを作成 mysiteはサイトの名前なので任意の値 インデントがきちんとしていないと以下のようなエラーが出るので注意 すると、以下のようなディレクトリ構成になる settings.pyの編集をしていく コンテナを立ち上げる ここからはコンテナに入って作業する DBのマイグレート スーパーユーザーの作成 これでアクセスできるようになる http://0.0.0.0:8000 http://0.0.0.0/admin:8000 続きはこちら DjangoでSNSログイン機能を実装させる2(Githubログイン機能実装まで)

Gitの基本操作_その2

Gitの基本操作の続き 前提 Githubは複数名で開発ができるツールであり、Branchというそれぞれのリポジトリを持つことができる それぞれがそれぞれのBranchで開発を進めて、よきところで合体させるというイメージ ただし、今回は、他の人(someone)が同じファイルを編集していて、うまいこと合体(merge)できなかったので、 fetchとmerge toolを使ってうまいことmergeさせる、というシナリオもやる ブランチを作る 何はともあれ、まずはbranchを作る 名前はyoshiとする 変更してpushしたりするとremote repositoryの方でもbranchができたのが確認できる 選択すると、yoshi branchの変更点が反映されている pullリクエストとmaster branchへのmerge yoshi branchで変更した内容をmaster branchへmergeさせる Githubの画面で操作となる yoshi branchの画面で「Compare & pull request」をクリック 適当に変更についてのコメントをつけつつ、「Create pull request」をクリック Pull requestのレビュー画面へ飛ぶ 本当はここでレビュアーがやんやコメントを書きつつ、修正しつつ、やんややんや議論をする そして良ければ、「Merge pull request」 これでMaster branchにyoshi branchの変更内容がMergeされる 変更してpush失敗まで そしてここからは、自分が編集しているうちに他の人がMaster branchを変更して、自分の変更がpushできないケース 変更差分を作る git pushしようとすると失敗する git fetch こんな時は、一度fetchを使って、他の人の変更差分をダウンロードする branchはyoshiのまま merge toolで変更編集 このままでは、mergeできないので、どのように合体させるか編集させる必要がある 色々やり方があると思うが、git merge toolを使う ※前提としてvimが使えるようになっている必要がある あと、以下の設定も入れておく …

Gitの基本操作_その2 Read More »

Gitの基本操作

Gitの基本についてまとめ 前提 なるべくCLIでの操作(SourceTreeとか使わない) GitHubを使う https://github.com 基本 リポジトリを作成する GitHubの画面でリポジトリ作成 ※GitHub使うにはアカウント登録が必要 作成すると以下のような画面になるので、インストラクションの通り操作すれば良いのですが、 一応以下より詳細メモ、CLIで操作します 操作概要 これから操作する概要は以下の通り、右のWorkSpaceでの変更を左のRemote Repositoryに送って行くイメージ なぜこんなに多段になっているかというと、変更点などを後々管理しやすくするためで、特にチーム開発などをすると利点を理解できるらしい gitを始める 試しにREADME.mdファイルを作ってみる git addとgit commit リモートブランチの追加とgit push 確認 これで晴れてリポジトリが作成できた 参考:Commitまでの作業で確認するためのコマンド ステージング (git add)状況を確認する時には「git status」、変更差分を確認したい時には「git diff」を使う git add前のステージング状況確認 git add前の変更差分確認 git addとステータス確認 Git Clone 次は、もともとあるリモートリポジトリをローカルにダウンロードする作業 GitHubのリポジトリ画面からURLをコピー コピーしたURLをgit cloneに続けて入力すればローカルにリモートリポジトリをダウンロードすることができる Commitを消したい Commitをしてしまったが、消したい時 例えば、こんな感じで先ほどのREADMEファイルに一行ずつ追加→Commitを繰り返したとする commit履歴は「git log」で確認できる change3に戻したいとして、一旦Commit IDを使って差分を確認する よければ戻したいCommit IDを指定して戻す 直前ならHEAD^とかで戻せるが、自分的にはIDをしっかり指定した方が良いと思っている logを確認すると戻っている addを消したい addを消すのはcommitを消すより簡単で「git …

Gitの基本操作 Read More »

FlaskのAPIサーバから取得した情報をHTML/Javascriptで表示する

flaskでAPIサーバを作成するで作成したAPIサーバからの情報をHTMLページに表示する 実際のツールは以下に https://www.yoshiislandblog.net/twitter_mecab_api/ 最新のコードは以下に https://github.com/yoshi-island/mecab-twitter-api_client get-tweets-places.html 参考: 備忘:ログアウトしてもバックグランドでコマンドを実行し続ける

flaskでAPIサーバを作成する

flaskでAPIサーバを作成してみる 今回は、TwitterIDから、最近呟いた地名を取得するAPIを作成する MeCabなど環境作成はサクッとAmazon LinuxにMecab導入を参考にしてください   【APIサーバ】flask-corsをインストール 【APIサーバ】各スクリプトの配置 最新版はこちら(https://github.com/yoshi-island/mecab-twitter-api) 「get_tweets_place_list.py」で、tweetを取得してMecabで地名を抽出、 「mecab-twitter-api.py」で、APIサーバとしてリクエストが来たら返信する passwords.py Twitter tokenは一応別ファイルに書いておいて、モジュールとして呼び出す。 Twetterの設定はこちらを参考に。 twitter botを作ってみた passwords.py get_tweets_place_list.py get_tweets_place_list.py mecab-twitter-api.py mecab-twitter-api.py 【Mac】実行 ローカルMacから実行 今回はホリエモンのIDを利用 きちんと返って来ている Trouble Shooting 以下のようなエラーが出たので 以下を参考に、「@api.after_request」を追加したら、解消した https://stackoverflow.com/questions/22181384/javascript-no-access-control-allow-origin-header-is-present-on-the-requested 参考: 備忘:ログアウトしてもバックグランドでコマンドを実行し続ける

WordPress(aws_bitnami)のssl対応

※20200927更新 こちらの新しい記事も参照ください WordPressのSSL化 結構奮闘したのでメモ Really Simple SSLをインストール まずは、httpsでアクセスできるようにする Really Symple SSLを使用した https://really-simple-ssl.com/ これでhttpsアクセスできるようになるが、 mixed content warningが出てしまうのと、 Untrust Pageとして赤い鍵マークが表示されてしまうので、それぞれ対処する mixed content warning この辺りの公式ページに対処法が載っているが、自分は画像リンクとページリンクがhttpのままであったことが原因だった https://really-simple-ssl.com/knowledge-base/how-to-track-down-mixed-content-or-insecure-content/ 以下のツールも使いつつ、地道に修正する。地道 https://ja.wordpress.org/plugins/ssl-insecure-content-fixer/ https://ja.wordpress.org/plugins/search-and-replace/ Certificateを適用 無料で使えるLet’s Encryptを使用する 古い証明書が残っていたら、消しておく 発行 エラーが出てしまうので、一度apacheをstopする bitnamiなので以下のコマンドでstopする 再トライ Congratulationsと出てくるのでうまくいったと確認できる Certificateには期限があるので確認しておく 諸々ファイルを修正していく /opt/bitnami/apache2/conf/httpd.confはコメントを外す /opt/bitnami/apache2/conf/extra/httpd-ssl.confはパスを自分の環境に合わせて変更する apache起動、、できない /opt/bitnami/apache2/conf/bitnami/bitnami.confの、「# Default SSL Virtual Host configuration.」以下をコメントアウトする必要があるとのこと https://www.moor-triangle.com/2017/02/01/%E3%80%90aws%E3%80%91bitnami-wordpress%E3%82%92lets-encrypt%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E7%84%A1%E6%96%99%E3%81%A7ssl%E5%8C%96/ 今度は成功したが、サイトにアクセスできなくなってしまったので/opt/bitnami/apache2/conf/extra/httpd-ssl.confを以下の通り修正   ひとまず完成 参考:Letsencryptを更新しようとしたら例の「Problem binding to port 80」が出現する