USP 友の会・シェル芸勉強会 LT - 2014/02/15

curl で iPhone にプッシュ通知しよう
日本 GNU AWK ユーザー会
斉藤 博文
hi_saito@yk.rim.or.jp
@hi_saito
Page 1

h...
USP 友の会・シェル芸勉強会 LT - 2014/02/15

iPhone 用プッシュアプリ
名前
imkayac

ここが○
 API が簡単

PUSH

 HTML 利用可能

Pushover

 iOS7 ライクな
UI
...
USP 友の会・シェル芸勉強会 LT - 2014/02/15

Pushover の見た目
 iOS7 に合った UI。
 アイコンを API Token で使い
分けることが可能。
 様々な情報を一括表示または
個別表示可能。。

常...
USP 友の会・シェル芸勉強会 LT - 2014/02/15

問題はパラメータ数
 この手の API はパラメータが多いのが特徴。
 毎回入力するのは面倒。
curl -s -F "token=${token}"
-F "title=$...
USP 友の会・シェル芸勉強会 LT - 2014/02/15

入力はヒアドキュメント
 複数行を送信したい場合もあるので、変数を
引数にするよりもファイルを引数にした方が
便利。

cat <<TXT > push.txt
1
# 優先度...
USP 友の会・シェル芸勉強会 LT - 2014/02/15

関数化部分 - その 1
 関数内の declare は local と同義でローカル
変数として定義される。
declare push_txt=${1}
declare pr...
USP 友の会・シェル芸勉強会 LT - 2014/02/15

関数化部分 - その 2
 変数定義されたものを curl で送信するだけの
簡単なお仕事です。
curl -s -F "token=${token}" -F "user=${...
USP 友の会・シェル芸勉強会 LT - 2014/02/15

関数化部分 - 完成
SEND_PUSHOVER() {
declare push_txt=${1}
declare prioriy=$(awk 'NR == 1' ${push...
USP 友の会・シェル芸勉強会 LT - 2014/02/15

関数の呼び出し
cat <<TXT > push.txt
1
a*****************************
u**************************...
USP 友の会・シェル芸勉強会 LT - 2014/02/15

デモ

Page 10

http://gauc.no-ip.org/awk-users-jp/
USP 友の会・シェル芸勉強会 LT - 2014/02/15

何に使っている?
 注意報・警報の通知
 雨量情報の通知
 特定の人から来たメールの通知
 気になるキーワードを含むツィートの通知
 システムのアップデート結果

 ...
Upcoming SlideShare
Loading in …5
×

curl で iPhone にプッシュ通知しよう

1,391 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,391
On SlideShare
0
From Embeds
0
Number of Embeds
58
Actions
Shares
0
Downloads
4
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

curl で iPhone にプッシュ通知しよう

  1. 1. USP 友の会・シェル芸勉強会 LT - 2014/02/15 curl で iPhone にプッシュ通知しよう 日本 GNU AWK ユーザー会 斉藤 博文 hi_saito@yk.rim.or.jp @hi_saito Page 1 http://gauc.no-ip.org/awk-users-jp/
  2. 2. USP 友の会・シェル芸勉強会 LT - 2014/02/15 iPhone 用プッシュアプリ 名前 imkayac ここが○  API が簡単 PUSH  HTML 利用可能 Pushover  iOS7 ライクな UI  IFTTT 連携可能 ここが×  他人からプッシュ されてしまう  iOS7 っぽくない  操作性が若干悪い 一長一短あるが Pushover が無難 Page 2 http://gauc.no-ip.org/awk-users-jp/
  3. 3. USP 友の会・シェル芸勉強会 LT - 2014/02/15 Pushover の見た目  iOS7 に合った UI。  アイコンを API Token で使い 分けることが可能。  様々な情報を一括表示または 個別表示可能。。 常に使うアプリは見た目も重要 Page 3 http://gauc.no-ip.org/awk-users-jp/
  4. 4. USP 友の会・シェル芸勉強会 LT - 2014/02/15 問題はパラメータ数  この手の API はパラメータが多いのが特徴。  毎回入力するのは面倒。 curl -s -F "token=${token}" -F "title=${title}" -F "user=${user}" -F "prioriy=${prioriy}" -F "message=${message}" -F "timespamp=${timespamp}" -F "sound=${sound}" https://api.pushover.net/1/messages.json 関数化して簡略化したいよね Page 4 http://gauc.no-ip.org/awk-users-jp/
  5. 5. USP 友の会・シェル芸勉強会 LT - 2014/02/15 入力はヒアドキュメント  複数行を送信したい場合もあるので、変数を 引数にするよりもファイルを引数にした方が 便利。 cat <<TXT > push.txt 1 # 優先度 a***************************** # API Token u***************************** # User Key タイトル # タイトル 本文 # 本文 TXT ヒアドキュメント使っていますか? Page 5 http://gauc.no-ip.org/awk-users-jp/
  6. 6. USP 友の会・シェル芸勉強会 LT - 2014/02/15 関数化部分 - その 1  関数内の declare は local と同義でローカル 変数として定義される。 declare push_txt=${1} declare prioriy=$(awk 'NR == 1' ${push_txt}) declare token=$(awk 'NR == 2' ${push_txt}) declare user=$(awk 'NR == 3' ${push_txt}) declare title=$(awk 'NR == 4' ${push_txt}) declare message=$(awk 'NR >= 5' ${push_txt}) declare timestamp=$(date '+%s') declare sound="pushover" 決め打ちだけど、自分が分かれば OK Page 6 http://gauc.no-ip.org/awk-users-jp/
  7. 7. USP 友の会・シェル芸勉強会 LT - 2014/02/15 関数化部分 - その 2  変数定義されたものを curl で送信するだけの 簡単なお仕事です。 curl -s -F "token=${token}" -F "user=${user}" -F "title=${title}" -F "prioriy=${prioriy}" -F "message=${message}" -F "timespamp=${timespamp}" -F "sound=${sound}" https://api.pushover.net/1/messages.json > /dev/null もちろん wget でも可能 Page 7 http://gauc.no-ip.org/awk-users-jp/
  8. 8. USP 友の会・シェル芸勉強会 LT - 2014/02/15 関数化部分 - 完成 SEND_PUSHOVER() { declare push_txt=${1} declare prioriy=$(awk 'NR == 1' ${push_txt}) declare token=$(awk 'NR == 2' ${push_txt}) declare user=$(awk 'NR == 3' ${push_txt}) declare title=$(awk 'NR == 4' ${push_txt}) declare message=$(awk 'NR >= 5' ${push_txt}) declare timestamp=$(date '+%s') declare sound="pushover" } curl -s -F "token=${token}" -F "user=${user}" -F "title=${title}" -F "prioriy=${prioriy}" -F "message=${message}" -F "timespamp=${timespamp}" -F "sound=${sound}" https://api.pushover.net/1/messages.json > /dev/null Page 8 http://gauc.no-ip.org/awk-users-jp/
  9. 9. USP 友の会・シェル芸勉強会 LT - 2014/02/15 関数の呼び出し cat <<TXT > push.txt 1 a***************************** u***************************** USP Magazine 原稿の件 締め切りまであと 5 日ですが、 進捗はどうですか? by ☆ TXT SEND_PUSHOVER push.txt 引数にヒアドキュメントのファイルを指定 Page 9 http://gauc.no-ip.org/awk-users-jp/
  10. 10. USP 友の会・シェル芸勉強会 LT - 2014/02/15 デモ Page 10 http://gauc.no-ip.org/awk-users-jp/
  11. 11. USP 友の会・シェル芸勉強会 LT - 2014/02/15 何に使っている?  注意報・警報の通知  雨量情報の通知  特定の人から来たメールの通知  気になるキーワードを含むツィートの通知  システムのアップデート結果  サーバー異常等の報告  IFTTT からの通知 Page 11 http://gauc.no-ip.org/awk-users-jp/

×