Code Monkey home page Code Monkey logo

line2discord's Introduction

LINE2Discord Bot

English README is README_en.md.

できること

LINEのグループに送信されたメッセージをDiscordのグループへ送信します。 送信できるメッセージは次の通りです。

  • テキストメッセージ
  • 画像
  • 音声
  • 動画
  • ファイル

スタンプや位置情報については送信できません。

導入方法

Discord Webhookの用意

Discordの該当チャンネルの編集を押し、WebhooksにあるWebhookを作成からWebhookを作成してください。 各種Webhookの設定を済ませたら、WEBHOOK URLをコピーしておいてください。

LINE Developersへの登録

はじめにLINEでBotを利用するために、LINE Developersに登録します。メッセージの送信を行わないので、Free版で登録していただいて構いません。
Botを作成したら、アクセストークンとシークレットキーをコピーしておいてください。

また、Botを利用するLINEのグループのグループIDを取得しておいてください。

Botの設定

このリポジトリからファイルをダウンロードして、configure.json.sampleconfigure.jsonにリネームし、先程コピーしたDiscordのWEBHOOK URL、LINEのアクセストークン、シークレットキーとグループIDをhookUrl、token、secret、groupIdの該当箇所に貼り付けてください。詳細やその他の設定項目については、下にある設定についての項目で説明しています。

サーバの用意

このBotを稼働させるサーバを用意してください。 PHP7以上が動作し、HTTPS通信ができる必要があります。 先程ダウンロードして設定したファイル群をまとめてサーバの該当箇所にアップロードします。

LINE Botの設定

再びLINE DevelopersのBotページに戻り、Webhook URLに先程アップロードしたファイルのうちのbot.phpのアドレスを入力します。正しくアクセスできれば自動的に設定が完了します。
次に、LINEアプリ側でBotを該当のグループに招待し、作業は完了です。

設定について

configure.json.sampleの設定について記載しています。実際に使用する場合はconfigure.jsonにリネームしてください。

グループ 項目名 説明
system locale PHPの言語設定です。マルチバイトドメインの処理に影響があることがあるため必要に応じて設定してください。
system defaultUserName Discordに表示されるデフォルトのユーザー名です。LINEの個人情報利用に関する条項に同意していない場合はユーザー名が取得できないため、この名前が使われます。
system uploadLocation LINEから送信されたファイルが保存される位置です。これらファイルがある位置をカレントディレクトリとしています。
line token LINEのBotで必要となるアクセストークンです。
line secret LINEのBotで必要となるシークレットキーです。
line groupId 受信するグループを限定するためのグループIDです。
discord hookUrl DiscordのWEBHOOK URLです。
discord botName Discordのチャットで表示されるBotの名前です。
discord botThumbnail Discordのチャットで表示されるBotのサムネイル画像のURLです。
discord maxFileSize Discordに送信できる最大のファイルサイズです。バイト形式で入力してあり、これを超える大きさのファイルはURLがメッセージとして送信されます。

注意事項

このBotはLINEのグループからファイルをダウンロードしますが、削除しないためサーバ上に残り続けます。
また、log.txtも非常に肥大化するため長期間の使用時は定期的にこれらファイルを削除してください。

今後の予定

  • ログ関係の整備
  • デバッグ関係の改善
  • スタンプの対応 位置情報については対応予定はありません。もし熱い要望があれば検討します。

ライセンス

このプログラムはMITライセンスの元、配布されます。ライセンスについてはLICENSE.mdをご覧ください。

line2discord's People

Contributors

hyodakazuaki avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

line2discord's Issues

スタンプを表示できるようにする

問題点

  • 標準スタンプとストアスタンプで処理を変える必要がある
  • 更に普通のスタンプと動くスタンプで処理を変える必要がある

詳細

LINE Messaging APIではスタンプの送信情報も受け取ることができるが、今の所スタンプをDiscord上に表示していない。
表示するとすれば、標準のスタンプとストアなどの有料スタンプで処理を分ける必要がありそう(有料スタンプが表示できるのはあまり良くない)。
更に動くスタンプや音声の出るスタンプもあるので同様に処理を分ける必要がありそう。

http://neos21.hatenablog.com/entry/2019/04/24/080000

ファイルによっては正しく保存できないものがある

LINEで送信されたファイルが正しく保存できないためにファイル名.tmpという名前でDiscord上に送信されてしまう。

LINE Messaging APIを確認したところ、画像ファイルは.jpg、動画ファイルは.mp4、音声ファイルは.m4aだったのでそのように拡張子をつけるようにし、それ以外のファイルはファイル名を使用するようにする。

ログを吐き出さないようにできるようにする

ログを吐き出しっぱなしだとログファイルが膨れ上がるので吐き出さないような設定を追加する

どちらかというとログを日毎に分離したりして圧縮かけるようにするといいのかも

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.