User Streamを使って複数アカウント対応のWebアプリケーションを作る方法について

82 views
Skip to first unread message

古家大

unread,
Jan 26, 2015, 12:53:14 AM1/26/15
to twitter-devel...@googlegroups.com
お世話になります。古家と申します。

HootSuiteのように複数のTwitterアカウントと連携して、各ツイートやメンションされた情報を一覧表示する
Webアプリケーションを作りたいと思っています。

その場合、Site Streamを使えば複数のアカウントの情報をリアルタイムに取得することが出来ると思い
先ほど利用申請を行いました。

ただ、Site Streamは申請者全員が使えるわけではないらしいので、
代わりに実装出来る方法が無いか模索しております。

例えば、User Streamを使って同じようなアプリケーションを作ることは可能なのでしょうか?

全くの初心者なので、見当違いの質問をしていたら申し訳ございません。

ご回答よろしくお願いいたします。

Yamamoto Yusuke

unread,
Jan 26, 2015, 12:58:24 AM1/26/15
to twitter-devel...@googlegroups.com
こんにちは。

Site Streamは1本のセッションで最大1000人までのストリームを受け取れますが、内容はUser streamとほぼ同じです。
ですのでUser Streamでも同じようなアプリケーションの開発は可能です。
--
山本 裕介
@yusuke
http://samuraism.jp/
> --
> このメールは Google グループのグループ「Twitter Development Talk - ja」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには twitter-development...@googlegroups.com にメールを送信してください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

古家大

unread,
Jan 26, 2015, 1:36:10 AM1/26/15
to twitter-devel...@googlegroups.com
山本様

早速のご返信ありがとうございます!

>Site Streamは1本のセッションで最大1000人までのストリームを受け取れますが、内容はUser streamとほぼ同じです。 
>ですのでUser Streamでも同じようなアプリケーションの開発は可能です。 
受け取れるデータはほぼ同じということで理解しました。
その場合、1000人のストリームを受け取るにはUser Streamの場合は1000本のセッションが必要になるのでしょうか?

User Streamを使って、複数のアカウント連携しているサンプルコードなど
ありましたら教えていただけますと幸いです。

お手数おかけいたします。

On Monday, January 26, 2015 at 2:58:24 PM UTC+9, 山本 裕介 wrote:
こんにちは。

Site Streamは1本のセッションで最大1000人までのストリームを受け取れますが、内容はUser streamとほぼ同じです。
ですのでUser Streamでも同じようなアプリケーションの開発は可能です。
--
山本 裕介
@yusuke
http://samuraism.jp/

> On Jan 26, 2015, at 14:53, 古家大 <m.fu...@comnico.jp> wrote:
>
> お世話になります。古家と申します。
>
> HootSuiteのように複数のTwitterアカウントと連携して、各ツイートやメンションされた情報を一覧表示する
> Webアプリケーションを作りたいと思っています。
>
> その場合、Site Streamを使えば複数のアカウントの情報をリアルタイムに取得することが出来ると思い
> 先ほど利用申請を行いました。
>
> ただ、Site Streamは申請者全員が使えるわけではないらしいので、
> 代わりに実装出来る方法が無いか模索しております。
>
> 例えば、User Streamを使って同じようなアプリケーションを作ることは可能なのでしょうか?
>
> 全くの初心者なので、見当違いの質問をしていたら申し訳ございません。
>
> ご回答よろしくお願いいたします。
>
> --
> このメールは Google グループのグループ「Twitter Development Talk - ja」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには twitter-development-talk-ja+unsub...@googlegroups.com にメールを送信してください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

Yusuke Yamamoto

unread,
Jan 26, 2015, 1:39:29 AM1/26/15
to twitter-devel...@googlegroups.com
その場合、1000人のストリームを受け取るにはUser Streamの場合は1000本のセッションが必要になるのでしょうか?
はい。人数分のTCPセッションが必要になります。

User Streamを使って、複数のアカウント連携しているサンプルコードなど
ありましたら教えていただけますと幸いです。
同じ処理を人数分並列に行う形になります。特に複数人対応することで特別なコードにはなりません。

-- 
山本 裕介
@yusuke
http://samuraism.jp/
Sent from my iPhone6
このグループから退会し、グループからのメールの配信を停止するには twitter-development...@googlegroups.com にメールを送信してください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

古家大

unread,
Jan 26, 2015, 2:05:15 AM1/26/15
to twitter-devel...@googlegroups.com
ご回答ありがとうございます。

頂いた内容を元にもう少し自分で調べてみます。

古家大

unread,
Jan 26, 2015, 9:29:46 AM1/26/15
to twitter-devel...@googlegroups.com
山本様

tmhOAuthを使ってUserStreamの取得を試してみました。
ユーザーのトークンとトークンシークレットを2つ事前に用意しておき、
それぞれコマンドラインから以下のコードを次のように実行しました。(例: php user_stream.php)

<?php
require_once('tmhOAuth/tmhOAuth.php');

$tmhOAuth = new tmhOAuth(
array(
        'consumer_key'               => 'コンシューマーキー',
        'consumer_secret'            => 'シークレット',
        'token'                      => 'トークン',
        'secret'                     => 'トークンシークレット',
    )
);


$params = array();

$tmhOAuth->streaming_request('POST', $url, $params, 'filter_callback');

function filter_callback($data, $length, $metrics)
{
$res = json_decode($data);
var_dump($res);
}

すると2人のユーザーの情報をリアルタイムに取得することが出来たのですが、
ではUserStreamは1つのアプリごとに最大何人まで取得できるのでしょうか?

ドキュメントには以下の記述があったので、2-3個までは可能なのでは?と思っております。
Twitter account is limited to only a few simultaneous User Streams connections per OAuth application, regardless of IP

ご回答よろしくお願い致します。

Yamamoto Yusuke

unread,
Jan 26, 2015, 9:49:02 AM1/26/15
to twitter-devel...@googlegroups.com
1アカウントと1アプリケーションの組み合わせではちょっとしかコネクションを張れない、という意味です。
なので別アカウントであれば同じアプリケーションでも多数のストリームを受け取れます。
--
山本 裕介
@yusuke
http://samuraism.jp/

>> > このグループから退会し、グループからのメールの配信を停止するには twitter-development...@googlegroups.com にメールを送信してください。
>> > その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
>>
>>
>> --
>> このメールは Google グループのグループ「Twitter Development Talk - ja」に登録しているユーザーに送られています。
>> このグループから退会し、グループからのメールの配信を停止するには twitter-development...@googlegroups.com にメールを送信してください。
>> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
>
> --
> このメールは Google グループのグループ「Twitter Development Talk - ja」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには twitter-development...@googlegroups.com にメールを送信してください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

古家大

unread,
Jan 26, 2015, 9:29:13 PM1/26/15
to twitter-devel...@googlegroups.com
回答ありがとうございます。

では1つのアプリケーションで複数アカウントのアクセストークンとシークレットを取得しておけば
同じアプリケーションでも、多数コネクションを張ってストリームを取得できるという理解で合っていますでしょうか?
>> > このグループから退会し、グループからのメールの配信を停止するには twitter-development-talk-ja+unsub...@googlegroups.com にメールを送信してください。
>> > その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
>>
>>
>> --
>> このメールは Google グループのグループ「Twitter Development Talk - ja」に登録しているユーザーに送られています。
>> このグループから退会し、グループからのメールの配信を停止するには twitter-development-talk-ja+unsub...@googlegroups.com にメールを送信してください。
>> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
>
> --
> このメールは Google グループのグループ「Twitter Development Talk - ja」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには twitter-development-talk-ja+unsub...@googlegroups.com にメールを送信してください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

Yusuke Yamamoto

unread,
Jan 26, 2015, 9:30:50 PM1/26/15
to twitter-devel...@googlegroups.com
はい。そうです!


-- 
山本 裕介
@yusuke
http://samuraism.jp/
Sent from my iPhone6
このグループから退会し、グループからのメールの配信を停止するには twitter-development...@googlegroups.com にメールを送信してください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

古家大

unread,
Jan 27, 2015, 1:08:36 AM1/27/15
to twitter-devel...@googlegroups.com
ありがとうございます!
Reply all
Reply to author
Forward
0 new messages