ヒロエルモノヲヒロウ日記

思いついたときが書き時

LINEのメッセージを他のスマホに転送してみる

はいしばらくです。

ネタが無いわけではないんですけど、色々あるネタがあまりにもとりとめが無さ過ぎてまとまらなかったので、今回は小ネタでお茶を濁します。

 

LINE使ってますか?

 

 

色々言われがちではありますが、なんだかんだ言って結局みなさんつかってますよね?

そのLINE、「着信したメッセージを他の端末に転送したい」という要望は結構多いようですね。

 

見たところ色々方法はあるようなんですけど、私はアホみたいに簡単な方法で最低限をザックリ実現しているのでその方法をご紹介します。

 

もうこの流れならだいたいわかると思いますが、使うのはコレ。

 

Google Play で手に入れよう

MacroDroid - デバイス自動化 - Google Play のアプリ

 

「スタンプ」とか「写真」とかそういうのはこの際無視して「メッセージのテキスト」限定ですが、一言で言うと、「メッセージを着信したときのLINEの『通知』を取得してそれをWebhooksで他の端末に(プッシュ通知っぽく)送る」という話です。

方法としてはこの一文につきるので特に詳細な解説不要な気はしますが、一応簡単なサンプルは載せておきます。


まず転送メッセージの「受信側」から。
転送されたメッセージを受信する端末上で、MacroDroidで下記のマクロを作ります。

(こちらの端末にLINEは有っても無くても問題ありません。)

 

ローカル変数でWebhookで送られてきたパラメータを格納する文字列変数を作っておきます。

ここでは仮に「line_from」「line_message」の2つを用意しました。

 

トリガーは

  [接続]
   →Webhook (URL)

です。

 

「識別ID」はとりあえず「LINE」にしておきます。

短縮URLあとで使うので控えておきます。

(黒塗りの部分は端末固有の「デバイスID」です。)

 

あとはアクションの「通知」で先ほど作った2つのローカル変数を表示する処理を用意してやればOKです。

この辺はお好みでどうぞ。

 

次に転送メッセージの「送信側」です。
LINEで着信したメッセージを送信する端末上で、同じくMacroDroidで下記のマクロを作ります。

(こちらの端末のLINEに着信したメッセージを他の端末に転送します。)

 

 

トリガーは
  [機器の動作]
   →通知
    →通知が表示されたとき
     →アプリを選択(複数可)
      →「LINE」を選択してチェック

 

 

 

メッセージ着信のたびに転送したい人は「複数トリガー時は初回のみ」のチェックを外しておくとよいと思います。
「メッセージが来た」ということだけわかればいい人はチェックしたままの方がよいかもしれません。
使い方に合わせて試してみると良いと思います。


アクションは
  [アプリ]
   →Webサイトを開く

 

で、先ほど控えた受信側の短縮URLを含めた「呼び出し用URL」を組み立てて入れます。

 



送るパラメータはURLの後ろに「?」を付けて加えます。
複数のパラメータがある時は「&」で結びましょう
パラメータ名は受信側で作ったローカル変数に合わせます。
「(デバイスID)」の部分は短縮URLのものをそのまま使用します。

 

(今回の場合の例)


https://tinyurl.com/(デバイスID)/LINE?line_from={not_title}&line_message={notification}

(↑表示の都合上「:」を全角にしてあるのでこのままコピペしないでください。)

 

ここで使われている「{not_title}」と「{notification}」は「マジックテキスト」というやつで、この場合はそれぞれトリガーとなった通知の「タイトル」「本文」が自動的に入ります。

(URL入力部右の青い四角ボタンを押すと選択して入力できます。)

 

LINEの場合は「タイトル」が「送信者名」で「本文」が「メッセージ本体」ということになります。


「URLエンコードパラメータ」のチェックは入れたままで、「HTTP GET (Webブラウザ不使用)」のチェックは入れておきます。

(間違えてたので修正しました。)

 

基本的にはこれだけです。


「送信側」にLINEのメッセージが着信した時に「受信側」に「送信者名」と「メッセージ」が送られて、「受信側」の通知が表示されます。

 


ただし、このままだと一回の着信で何故か複数回送信されてきたりすることもあるので、その辺は送信側で「送信者とメッセージの両方が全く同じときは転送しない」などの処理も必要に応じて入れた方が良いかと思います。

(Webhook送信の失敗もあるのでリトライの仕組みも考えた方が良い。)

 

あと、私の場合は「仕事用」の端末から「個人」の端末に転送しているので、「送信者」や「特定のキーワード」などでフィルタをかけたり「転送される時間帯」を限定するなどの処理を加えています。


大事な用事以外はスルーと言う話ですね。


その場合でも「特定のキーワード」を含むものに限り転送とかできますし。

 

あくまで「メッセージ(のテキスト)」を他の端末で確認できるってだけで送信や返信は「元の端末」でやってくださいって話ですし、スタンプや写真/動画なども直接は来ませんけど、「メッセージが来た」ということがわかるという程度で私の場合はそれなりに役に立っています

元々「いかにプライベートに仕事を割り込ませないか」というコントロールの一環でもあったので。

ネットで検索すると結構色々な方法で「転送」を実現されているように見えるんですけど、このMacroDroidを使った方法だと「簡単」で「応用が利く」ので、「個人」と「仕事」で分けている人にはお勧めなんじゃないかと思います。

理屈の上ではLINEに限らずSlackでも同じようにできますし「通知が出るものなら大概OK」って話なんですけどね。


 ということでLINEとMacroDroidの小ネタでした。

 

 

 

 

自分で充電させてみる(おまけ)

MacroDroidでスマートプラグとIFTTTを連携させてandroidスマホの充電を「自分で」させる方法を書いたのが前回まで。

 

dogadget.hatenablog.com

dogadget.hatenablog.com

 

この方法論、実際に充電をON/OFFしてるのはIFTTTからなので、所定のURLさえ叩ければ呼び出し元は何でもいいんですよね。

実際の話、iOSの「オートメーション」でもバッテリー残量をトリガーにしてURLを呼び出すことができたりします。

 

 

せっかくなのでやってみます。

詳細は例によって割愛した上で、この通り。

 

 

URLの部分をそれぞれIFTTTの呼び出し用URLにしてやればOKです。

 

 

これだけでOK。

 

私の場合は充電の前後にもう一つ呼び出しをいれて「充電開始/終了」を主端末に通知するなども仕込んでいます。


元々、「手元のiPhoneのバッテリーが過充電で円柱状になった」ってところを発端に始まった話なのでiOSが「おまけ扱いの後回し」になってるのも何だかって話ではあるんですけど、私がメインで使用しているのがandroid何かと言えば「MacroDroid」でどうにかしたいという欲求で動くので仕方ないのです。

 

というわけで端末の過充電には気を付けましょう。

 

 

 

 

自分で充電させてみる(その2)

前回のつづきです。

 

dogadget.hatenablog.com

 

「IFTTT」からスマートプラグをON/OFFできるようにしたところまででしたね。

ようやくこいつの出番です。

 

Google Play で手に入れよう

MacroDroid - デバイス自動化 - Google Play のアプリ

 

ここから先はは簡単です。

MacroDroidで

 

「バッテリー残量が一定のレベルまで低下したらスマートプラグ(充電器)をONにして充電を開始する」


「バッテリー残量が一定のレベルまで上昇したらスマートプラグ(充電器)をOFFにして充電を終了する」

 

というマクロを組んでやるだけです。

詳細は割愛しますが、

 

(ONの場合)
 [トリガー]
  バッテリー/電源
   →バッテリー残量の変化
    →指定残量への増加/減少
     →「~まで減少」を選択
      →トリガーが発動するバッテリー残量をスライダーで指定

 [アクション]
  アプリ
   →Webサイトを開く
    →「URL を 入力」の欄にIFTTTから取得した「charge_on」用のURLを入れる
     ※「HTTP GET」にチェックを入れておく

 

※黒塗り部は固有ID

 

(OFFの場合)
 [トリガー]
  バッテリー/電源
   →バッテリー残量の変化
    →指定残量への増加/減少
     →「~まで増加」を選択
      →トリガーが発動するバッテリー残量をスライダーで指定

 [アクション]
  アプリ
   →Webサイトを開く
    →「URL を 入力」の欄にIFTTTから取得した「charge_off」用のURLを入れる
     ※「HTTP GET」にチェックを入れておく

 

※黒塗り部は固有ID


基本的にはこれだけです。

Webhooksの呼び出しは失敗することもあるので、必要に応じてリトライの仕組みを入れるとか手元の端末に通知を送るとかの工夫もアリだと思います。

 

ここまでできたらスマートプラグにスマホの充電器を接続し、充電器からのケーブルをスマホに挿しておくだけで、

 

「ある程度バッテリーが減ったら自動的に充電を開始」
「ある程度バッテリーが増えたら自動的に充電を終了」

 

という作業をスマホ自身に行わせる」形が実現できます。
私の場合は「下限」を40%、「上限」を70%で運用してみています。

 

「本当にこれでいいか」ってのはちょっとわからないんですけど、少なくとも「バッテリーが100%の状態で充電しっぱなし」が良くないということは体験したので「そうならないように」は出来たのかなと。

そして、この仕組みを更にこちらに応用しています。

 

dogadget.hatenablog.com


Slackの離席状態をコントロールする仕組みでしたね。

スマホでSlackの画面を表示したままにして(見た目的には)在席をキープする」という「かなりインチキ臭い仕組み」です。


これも基本的には「充電しっぱなし」になりがちなやつなので、「必要な時にはしっかり充電するけどそれ以外の時は適度なレベルを維持」という感じにしています。

 

ちなみに、これらのおかげで私は毎日Slackに指一本ふれずとも「ステータス」や「離席状態」を自動でコントロールできています。

 

退役機じゃ無くてもPixelのアダプティブ充電」のような「充電管理の仕組み」が無い機種なんかだとこのようにスマートプラグを活用するというのも有効なのではないかと思います。
最近は3~4口のタップ型のスマートプラグもあって各口ごとに個別の操作もできますし。

 

とりあえず、「機種変して一線を退いたスマホを何かに活用してみようという人」の参考になればと思います。

 

 

(おまけ)

 私は何度か「MacroDroidからのWebhooks送信は正常に完了しているのにIFTTT側が動作しない(ログにも残っていない)」という現象を経験しました。

これはIFTTTの問題という事のようですが、この場合は該当のアプレット

 

これをクリックして

 

一旦切断してこの状態になったらもう一回クリックして

この状態に戻すと正常に動作するようになったりします。

 

「おかしいな」と思ったら試してみましょう。

 

 

 

 

 

自分で充電させてみる(その1)

ガジェット類の充電ってどうしてます?(唐突な質問)

 

毎日使うものなら毎日充電して「とりあえず100%からスタート」ってのもアリだと思うんですけど、「機種変後の退役機」を宅内で何らかの用途で使う場合についつい充電しっぱなしってことありません?

 

会社で使わなくなったiPhone「共用端末」として社内で充電したままの状態で置いておいたら、ある日気がつくとバッテリーが膨らんで裏蓋が外れてました

会社の近くにバッテリー交換をしてくれる店があるのですぐに持って行って交換してもらって事なきを得たのですが、取り出されたバッテリーが「膨らんでる」どころか「乾電池かというくらいの円柱状」になってて、これって結構危険な状態だったんじゃね?と背筋が寒くなりました。

 

それ以降もなんだかんだで「退役機の常設」は続いてるんですけど、流石に同じことを繰り返すわけにもいかないので手は打たないといけません。

 

要はざっくりした話ではバッテリーにとっては「100%」や「0%」の状態が続くのが良くないと言うことらしいので、常時50%周辺のレベルをキープできれば「バッテリーの乾電池化」は防げるのではないかと思いました。

 

だからと言って人間がいちいちバッテリー残量に応じて充電ケーブルを挿したり抜いたりするのも現実的ではありません。

 

 

そうだ、スマホに自分でやらせよう

 

 

前置きが長いですが、今回もこれの出番です。

 

Google Play で手に入れよう

MacroDroid - デバイス自動化 - Google Play のアプリ

 

MacroDroidには「バッテリー残量」のトリガーがあるので、「ある程度まで減ったら充電開始」「ある程度まで増えたら充電終了」というマクロを組めば良いと思います。

 

ただし、「実際の充電のON/OFF」はMacroDroidでは直接できないので、こういうものを使います

 

 

「スマートプラグ」という商品ですね。

 

これと

 

ifttt.com

 

「IFTTT」を組み合わせます。

前にこの辺で使いました。

 

dogadget.hatenablog.com

dogadget.hatenablog.com

 

IFTTTはちょっと前に有料と無料の差別化がされて無料プランだと作成できるアプレットの数に上限があります。

ここで必要なのははONとOFFの2つだけなので(この為だけなら)無料プランで大丈夫だと思います。

 

まず、スマートプラグをIFTTTから制御できるようにします。

現在売られている製品だと大概「IFTTT対応」を謳ったものではあると思うんですけど、必ず確認はしましょう。

 

専用アプリ、もしくは対応する汎用のアプリがあるはずなので、スマホにインストールします。

あとはアプリを起動して画面の指示に従えばアカウント作成と機器のセットアップができるはずです。

ここはどこの製品でもそれほど大差なくさほど難しくもないので問題ないかと思います。

個別の製品の話でもあるので詳細は割愛します。

 

スマートプラグの準備ができたら今度は制御に使う「IFTTT」の準備です。

ここではPCのサイトを例に出していますが、スマホのアプリからでもだいたい同じだと思います。

 

Google Play で手に入れよう

IFTTT - Google Play のアプリ

 

サイトにアクセスしてサインイン(ログイン)までは済んでいるものと仮定します。

 

「Create」アプレットを作成

 

 

「If This」の「Add」をクリックしてトリガーを設定

 

 

「Webhooks」で検索して選択

 

 

「Recieve a web request」を選択

 

 

この画面が表示されたら「Connect」をクリック

※以前に接続済みの場合は表示されない

 

識別用の「Event Name」を入力

充電開始用なのでとりあえず「charge_on」とします

 

 

「Create trigger」で次に

 

「Then That」の「Add」をクリックしてアクションを設定

 

 

使用するスマートプラグの対応アプリ、もしくはメーカー名で検索して選択

(仮に「Meross」を使用しているものとする) 

 

 

「Turn On」を選択

 

※機器やアプリによって画面や選択肢は異なります

 

この画面が表示されたら「Connect」をクリック

※以前に接続済みの場合は表示されない

※機器やアプリによって画面は異なります

 

 

アプリで登録したアカウントでログイン

 

※機器やアプリによって画面は異なります

 

アカウントに登録されているデバイスを選択

 

※機器やアプリによって画面は異なります

 

「Create action」で次に

 

「Continue」で次に

 

 

アプレット名をわかりやすいものに変更して「Finish」

 

 

「My Applets」をクリックして戻る

 

 

おなじようにOFF用も作ります。

 

 

識別IDは「charge_off」にしておきます。

2つのアプレットができました。

 

 

充電のオンとオフの両方できたら、MacroDroidから呼び出すためのURLを取得します。

この部分の「Webhooks」のアイコンをクリック

 

 

「Documentation」をクリック

 

 

テスト画面がでてくるので、「[event]」の部分に「charge_on」を入力して「Test It」をクリック

スマートプラグがONになることを確認

 

 

※黒塗り部分は機器の固有ID

      

※黒塗り部分は機器の固有ID

 

動作確認ができたら、この部分をコピーしてテキストエディタなどに貼り付けておく

 

※黒塗り部分は機器の固有ID

 

同様に「charge_off」でOFFになることも確認

 

同じくこの部分をコピーしてテキストエディタなどに貼り付けておく

 



あとはこれをMacroDroidから呼び出します。

 

長くなったのでつづきます。

 

 

新潟に行きました(その4)

ようやく「新潟」をある意味で満喫するところまで来ましたね。

 

dogadget.hatenablog.com

dogadget.hatenablog.com

dogadget.hatenablog.com

 

続きです。

 

 

朝は目覚ましより少し早く目が覚めました。

 

 

 

年ですかね

 

 

 

どうも前夜に飲み過ぎたのか、「二日酔い」と言うほどではないものの微妙に不調です。

いつもなら朝風呂の後は(混雑しないタイミングを見計らって)早めに朝食に行くところ、今回は少し様子を見ます。

 

幸いにしてその後少し復調したので無事に朝食。

 

 

いつもと比べたらちょっと「控えめ」ではあったかもしれません。

 

ゆっくり帰り支度をして、いつものように可能な限りの荷物を送り返してチェックアウト、仕事に向かいます。

 

この日の仕事は「確認と後始末」程度なのでサクッと片付けて撤収、新潟駅に移動します。あと新潟でやることと言えば(昨日買いそびれた)「お土産の調達」と「昼食」だけなんですけど、再開発の影響でどちらも「いつもの店」が無くなってしまったので駅構内を彷徨います。

 

どうにかおみやげも調達して、結構歩き回ったからか調子もだいぶ復調。

よく行っていた回転寿司がなくなっていたのは誤算でしたが、とりあえずあまり混雑していなかったこちらに入ります。

 

 

朝が(比較的)控えめだったからかそれなりに腹も減ったので、昼はしっかりと。

 

 

あとは帰るだけです。

 

新幹線の時間まではだいぶ余裕があるのですが、特にやることもなくなったので改札を通ります。

 

 

ホームを行ったり来たりして時間を潰し、乗車後は早々に寝ました

気がついたら大宮手前で、帰りの新幹線の記憶はほぼありません

WiFiradikoもほぼ役に立たなかったので寝ていて正解。

 

ここからはのんびり帰るだけです。

やっぱり移動した分は疲れますね。

 

次は飲み過ぎに気をつけます

 

 

おわり。

 

 

 

新潟に行きました(その3)

ここまで野球の話と充電の話しかしてなくて、昼飯食って風呂に入っただけで「新潟の話」って「駅の構造に対する文句」くらいしかしていませんが、新潟に行った記録です。

 

dogadget.hatenablog.com

dogadget.hatenablog.com

 

ここからはだいたい「いつもの通り」です。

 

宿の風呂に入って一旦リセットしたところで出かけます。

こういう「切り替え」のために「大浴場のある宿」は(たとえビジネスホテルでも)重要なので譲りません。

 

 

向かったのはいつも行くこちらのお店。

 

 

大好物の「セット」がちょっと変わったみたいですね。

それでもまあまあなコスパだと思います。

 

 

というわけで始めます。

 

 

店内のテレビではWBCの決勝の話題が流れています。

それを肴に一人飲みます。

 

基本的に地方での仕事は「一人で行って」「一人で働いて」「一人で飲んで」「一人で帰る」という徹頭徹尾一人なわけでそれは全然いいと思ってるんですけど、

 

 

この日に限っては誰かと語りたかった

 

 

という思いはありましたね。

 

言っても仕方ないので静かに飲みます。

 

セットが片付いたら移動します。

 

 

ランチで利用したお店に来ました。

ここも新潟に来たら大概来てます。

 

ここでもセットがあるのでそちらを選択。

 

 

新潟なのでドリンクは日本酒を選択。

 

 

ちびちびダラダラ飲もうかと思ったのですが、私が来た直後から客が増え始めカウンターが埋まり、テーブル席も予約があるのか何人もの一人客が断られていたので、「ダラダラ」ってのはちょっとアレだと思いほどほどで移動します。

 

まだ早かったのでもう一軒。

 

 

こちらは久々だったんですけど、いつの間にかセットがメニューに加わっていたので迷わず選択。

 

 

ネットのクーポンを提示すればお得と言われたのですが、酔いが回っていたのかなかなかたどり着きません。

お店の方に聞いてみたら特に問題なくあっさり到達。

思ったより駄目になっていたようです。

ここもセットを消化したら撤収した方が良さそうです。

 

 

この後は宿に帰っておとなしくWBC決勝の再放送を見て寝ました。

 

つづきます。

 

 

新潟に行きました(その2)

つづきです。

 

dogadget.hatenablog.com

 

「新潟に移動して仕事をしました」という話のはずなんですが、ほとんどWBCの話しかしてないですね。

 

宿は「いつものビジネスホテル」です。

もう新潟ではここが実質唯一の選択肢になってます。

 

淡々とチェックインをすませ部屋に入り、いつものように「充電環境の構築」から始めます。

 

dogadget.hatenablog.com

 

先日の福岡の時に「少々の工夫」を投入したものの「微妙」な感じだったので今回は少し「組み合わせ」や「取り回し」を改良して臨んだ結果、

 

 

あまり変わんねぇな…。

 

まあ見た目はアレですけど、時間は前回よりほんの少し短めになりましたね。

まあこの方式のメリットは「チェックイン後にすぐ構築できる」以上に「チェックアウト時の片付けが楽」ということではあります。

元を引っこ抜いて蓋をすればそのままキャリーバッグに入れられるので。

 

どうせ帰ったらまた「改良」が必要なので帰る前にきれいにまとめる必要ないですし。

 

とりあえず環境構築が完了したところで大浴場へ。

心身ともにちょっと色々落ち着けてから「出撃」したいと思います。

 

 

前回以上に新潟の話をしていないけどつづきます。