Help us understand the problem. What is going on with this article?

AWS lambdaとIFTTTを使って、LINE botへのメッセージをtwitterに転送する

More than 1 year has passed since last update.

LINE の Messaging API を使えば、LINE bot が受信したメッセージを任意のURLにPOSTさせることができます。

https://developers.line.me/ja/docs/messaging-api/reference/#anchor-e2c59da01216760e81e8ca10c55b2e28b276c3e5

これをそのまま直にIFTTTに流せればいいけど、そうはいかないので間にAWS lambdaをかまして変換します。

https://github.com/thrakt/line-to-ifttt-bridge

import json
import os

import requests

def handle(event, context):
    """
    Lambda handler
    """

    line_event = event['events'][0]

    if not os.environ["IFTTT_URL"]:
        return "please set IFTTT_URL"

    if line_event["type"] == "message" and line_event["message"]["type"] == "text":
        requests.post(os.environ["IFTTT_URL"], data={
            "value1": line_event["message"]["text"]
        })

    return {}

テキストメッセージの時だけ送ります。スタンプとかは無視する。
見てもらうとわかるんですが、各イベントはeventsという配列で来ます。厳密にはこれでループさせたほうがよかった……。サンプルは各イベントの中身なので注意。

また、API Gatewayでlambdaに通すと思いますが、上のやり方だとlambdaプロキシ統合は使用しない設定にする必要があります。LINE側から投げられるjsonを加工せずそのまま受け取るため。

あとはIFTTTのWebhooks(Maker Channelから名前変わってた)をトリガとして、twitterでvalue1をtweetすればOK。


で、こんな物の何が嬉しいんだという余談です。

Clova WAVEを買ったんですが、APIとかなく外と連携される手段が一切ありません。ただ、LINEの送信機能があります。そこで考えた。

このLINE送信機能でLINE botにメッセージ送ったらいろいろできるんじゃね?

って思うじゃん。俺も思ったわけよ。手始めに音声入力だけでtwitter送れるようにしたい。これが本当のライフログや~ってイキってたんですが……。ダメだった。

ClovaのLINE送信機能は、Clovaのスピーカー単位でグループが作られて、そこに参加している人に大してメッセージを送れるという物です。紐付いたアカウントは別名を付けて、○○にLINE送信 みたいなオーダーになるわけです。

このClovaのグループですが、普通と違って単純な友だち追加では追加されません。友だち追加をすると相手にメッセージが飛び、それを承認したら初めて追加という流れ。botはClovaのグループへの招待を承認することができません。多分。能動的に友だち追加なんてできない。

という事で頓挫し、手元にはLINEのメッセージがtwitterに流れるbotだけが残ったという、余談でした……。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした