-
プログラム
-
iftttみたいなのを作ろうと思います [転載禁止]©2ch.net
-
UPLIFTで広告なしで体験しましょう!快適な閲覧ライフをお約束します!
ifttt でオリジナルのチャンネルを登録しようと思ったのですが、iftttは自由にチャンネルの登録ができないようです。
チャンネルを作るための api があるのかどうかよくわかりません。
そこでオープンな ifttt みたいのを作りたいと思いました。
以下がリポジトリです。プロダクトの名前は chainub です。
https://github.com/chainub/chainub - コメントを投稿する
-
言語何
-
とりあえず、チャンネル用の api の仕様を以下のように決めました
https://github.com/c...ssuecomment-96200864
https://github.com/c...ssuecomment-96202992 -
ifttt について簡単に説明すると
https://ifttt.com/dashboard
色んなwebサービス等からの通知を受けて、それをまた別の色んなwebサービスにその通知を
渡す事ができるプラットフォームです。
ユーザーは通知を受け取るwebサービスと通知を渡すwebサービスの組み合わせを
色々と作る事ができて、組み合わせによってはとても便利に使うことができます。
ただ残念なことに通知を受け取ったち渡すwebサービスはあらかじめ ifttt で決められており
自由に開発者が追加することができません。。。
なので自由に開発者が追加できる ifttt のようなプラットフォームを作ろうとしています。 -
これ一緒に作る人さがしてんの??
それとも実況なの?? -
railsとnodejs使おうと思ってましたが、railsのみにしようと思います。
理由はわざわざわけるだけ無駄だなあと思ったからです。 -
面白そう
-
IFTTT登録したばかりで頓珍漢なこと言ってるかもしれないけど
> 条件分岐等の処理はアクションチャンネルからイベントを受け取ったwebサービス側で行う事を想定します。
これだと、ありがちな共通の条件/加工処理を
Webサービス側で個別にそれぞれ実装する必要が出てきて無駄が多いような。
Webサービス側で実装することのメリットは分かるけど -
ここでいうWebサービスって外部サイト(FBとかTwitter)またはそのAPIそのものではなくて
外部サイトが提供するAPIを使ってアクションを起こすコンポーネント郡を指しているという認識であってますよね? -
>>11
ありがとうござます!!
>>12
>これだと、ありがちな共通の条件/加工処理を
>Webサービス側で個別にそれぞれ実装する必要が出てきて無駄が多いような。
>Webサービス側で実装することのメリットは分かるけど
まことにその通りだと思います。なのでチャンネルが増えてきたら chainub側で設定できるような
仕組みを用意する予定です。
直近そのような仕組みを用意しないのは、チャンネルが増えるかどうか、
そもそもchainubの需要があるかどうかもわからないので
条件分岐の設定をする仕組みを今作るのは割に合わないだろうという理由です。
>>13
はい、その通りです。
ただ、もし仮にFBやTwitterやそういった外部サービスがアクションAPI(https://github.com/c...suecomment-96202992)
をサポートして、 chainub にチャンネルとして登録してくれた場合、
ここでいうWebサービスとなります。 -
攻撃の踏み台だな
-
社内のネットワークでchainub立てて、社内プライベートなJIRAとかSlack, Github Enterprise等をつなげて
さくっと連携機能作ったりできたら便利だなー。
オープンソースなので、IFTTTのような一般向けより、そっち方向で需要ありそう -
>>18
たしかにその通りなんですが、ユーザー定義のモジュールを使うかどうか他のユーザーは
選べるし、選んだとしてもそのモジュールに他のサイトのアクセストークンなりを渡す必要が
あります。
なので他のTwitterとかFacebookとかに連携する系のサービスと同じですね。 -
面白そう
-
chainub は rails engine にしてあります。
というのも chainub を Gem として配布できるようにするためです。
rspec でテストも用意します。
https://github.com/chainub/chainub
1個目のプルリクエストをマージしてソースツリーがそれっぽくなりましたw -
https://github.com/c...A8%E8%AA%9E%E9%9B%86
システムダイアグラムと用語集を用意しました。
これを見ればどんな感じのシステムなのかわかるかと思います。
>>19 を書いてて思ったのですが、外部のトリガーサービス、アクションサービスとの
認証部分の実装どうするかが結構肝になりそうだなあと思いました。 -
https://github.com/c...b/master/MIT-LICENSE
ライセンス分をもう一度読み直しましょう -
いやあなたは読んでないよ。修正されてないよ。しないの?
-
日本語でコミットログ書いてるぐらいのクズだからわからないのか残念
こんなんじゃ誰も参加したくないね -
なんかお前いいわ
がんがれ -
俺は応援してるよ
まぁここは2ちゃん、罵倒もコミットと考えて頑張って欲しい -
twitterと連携するアクションサービスを作って、
chainub -> twitterアクションサービス -> twitter
で連携できるようになりました。
https://github.com/c...itter_service_sample
これがそのアクションサービスのレポジトリです。
curl -F "api_key=88f7013521cd716f9c869b3635644f17" -F "api_secret=e54d16646571e18ec46288fe9e7f1526" -F "body=テストだよ" http://chainub.com:3...i/v1/chainub_trigger
"body=XXXXX" のXXXXXの部分が投稿する内容です。
試してみたい方はどうぞ〜 -
twitter と連携するアクションサービスの情報は
http://chainub.com:3...0/chainub/channels/1
こんな感じで chainub 内でチャンネルとして保持しています。 -
https://github.com/c...ub/chainub/issues/10
chainub内のどのユーザーにイベント渡すか、アクションサービス内のどのユーザー
にイベントを渡すか指定するためにどうしてもユーザー認証の仕組みが必要です。
そこの認証どうするかとても悩ましい。。。。
普通にOAuthにするか、あるいはもっと単純で簡単な独自の仕組みにするか。。。 -
そもそもトリガーサービスやアクションサービスの性質によってはどのユーザーか
指定する必要もないものがあるわけで、そういうのに対しては
ユーザー認証はしなくてもいいような設計にしたほうがよいなあと思うわけで
とても悩ましい。。。 -
支援
本家iftttはOAuthだったけ -
>>39
ありがとうござます!
iftttはチャンネル毎に外部サービスの認証にあわせてifttt側がカスタマイズ
しているようです。外部サービスの多くの認証が OAuth なので OAuth を使っている
ように見えます。
このように ifttt がサービスにあわせてカスタマイズするというスタンスなので
自由にチャンネルの登録ができないのです。 -
プラグインみたいにチャンネル拡張とか出来たら夢があるな
-
今日は更新なし??
-
>>41
オープンソースなので、色々とできますよ!
>>42
https://github.com/c...ub/chainub/issues/11
ちょっとこの件で色々と考えを巡らせてました。なかなか悩ましいです。。。 -
>>43
internal_class_nameの件は、よくあるプラグインの仕組みみたいですね
レコードのinsert/deleteに対応して、カラムが示すクラスを動的にロード/アンロードする感じですよね
意見ですが、プラグインのエントリーポイントとなるクラスのベースタイプは各拡張対象そのものではなく
PlugInとかにして、そのクラスがサブクラスに実装を要求する関数の中で
add_trigger_channel/add_action_channelとかして各拡張を登録する仕組みにすれば
- プラグインローダー部分はシンプルになる(今後拡張対象が増えてもローダーの修正は不要)
- 単一のパッケージとして複数の拡張を提供できる(Slackに関するトリガー/アクションのセット、みたいな)
というメリットがあるかなーと思いました -
C, D系はchainubとはWeb APIか何かで結合するんですかね?
-
>>44
>internal_class_nameの件は、よくあるプラグインの仕組みみたいですね
>レコードのinsert/deleteに対応して、カラムが示すクラスを動的にロード/アンロードする感じですよね
はい、その通りです。
どうにかメタプログラミングにならない方法を考えていたのですが、C,D系との共存や
ActionChannelやTriggerChannelというモデルと紐付けるにはこれが一番合理的だろうな〜と考えました
>意見ですが、プラグインのエントリーポイントとなるクラスのベースタイプは各拡張対象そのものではなく
>PlugInとかにして、そのクラスがサブクラスに実装を要求する関数の中で
>add_trigger_channel/add_action_channelとかして各拡張を登録する仕組み
なるほど!いいですね、上記の方針で実装を進めたいと思います。
ありがとうござます!
>>45
はい、こんな感じのWeb API です
https://github.com/c...ssuecomment-96202992
https://github.com/c...ssuecomment-96200864 -
iftttてdbどうなってんだろ。やっぱりサービス毎にテーブル分けてるんかな
-
>>49
差別化を考えんとかんな -
>>49
ならやめんの?? -
Oh..
-
開発おわったか
-
>>49
同等のものでも日本語対応の別アプリがあるならそれはそれで助かるかも?
個人的にはメモリざんが⚪︎⚪︎MBを切ったらsysight起動とかWi-Fiが切れたら通知出すとか再接続の動作が自動でできたらいいなぁ
※仕様の制約とかなにも知らずに書いてますのでそもそもできなかったら諦めます -
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
KEKDD -
KMB
↑今すぐ読める無料コミック大量配信中!↑