<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Anywhere &#8211; Mach3.laBlog</title>
	<atom:link href="https://blog.mach3.jp/tag/anywhere/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.mach3.jp</link>
	<description></description>
	<lastBuildDate>Fri, 07 Sep 2012 00:30:42 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>一括メンションを簡単にするジェネレータ「MultiMentions」</title>
		<link>https://blog.mach3.jp/2012/09/07/multimentions.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Fri, 07 Sep 2012 00:30:42 +0000</pubDate>
				<category><![CDATA[WebClip]]></category>
		<category><![CDATA[Anywhere]]></category>
		<category><![CDATA[Codogue]]></category>
		<category><![CDATA[Generator]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[Twitter]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=2655</guid>

					<description><![CDATA[先日ひっそりとCodogueに加わった新しい仲間「MultiMentions」の紹介です。 これはなに MultiMentions : 一括メンションジェネレーター &#124; CoDogue 多数のアカウントに対して一斉にメン [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>先日ひっそりと<a href="http://codogue.com">Codogue</a>に加わった新しい仲間「MultiMentions」の紹介です。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/-1SfqVYNWCBo/UEjNdx8kmHI/AAAAAAAABlI/0EaGrk_IBvw/s500/20120906-00.png" alt="一括メンションツイートを簡単にするジェネレータ「MultiMentions」"/></figure>



<p></p>



<span id="more-2655"></span>



<h2 class="wp-block-heading">これはなに</h2>



<p><a href="http://codogue.com/multimentions/">MultiMentions : 一括メンションジェネレーター | CoDogue</a></p>



<p>多数のアカウントに対して一斉にメンションを送る為のジェネレータです。</p>



<p>2,3ユーザーならば何の問題もないのですが、<br />
数十人〜に一括して送るのはツイッターの文字数制限をクリアする為に<br />
一々小分けにしなくてはならず、骨が折れますね。</p>



<p>MultiMentionsはそんな分割作業をお手伝いしてくれるツールです。</p>



<h2 class="wp-block-heading">使用例</h2>



<p>例えば大規模なパーティの幹事をしていて、参加者に一斉に確認事項を送りたいけど、<br />
全員相互にフォローしているわけではないので、Twiplaの一括DMが送れない。捗らなくて辛い。</p>



<p>そんな時は</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/-mgH3GxmhWgI/UEjNeNeg8HI/AAAAAAAABlI/NIwwgtu9TKk/s500/20120906-01.png" alt="Twipla のコメントで宛先を『「参加者」全員』にしてコピ"/></figure>



<p></p>



<p>Twipla のコメントで宛先を『「参加者」全員』にしてコピーして</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/-hOOOcDAQNIg/UEjNd9qH0VI/AAAAAAAABlI/Rxjync8-c58/s500/20120906-02.png" alt="ユーザーリストをペースト/メッセージを入力"/></figure>



<p></p>



<p>MultiMentionsの<em>「ユーザーリスト」</em>に貼り付けます。</p>



<p><em>「メッセージ」</em>に送りたいメッセージを入力して、<em>「メッセージの生成」</em>ボタンをクリックします。<br />
ここではまだメッセージは送信されないので安心してクリックしてください。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/-u_sXQltv70Q/UEjNernVFFI/AAAAAAAABlI/W6gHbFNOnS4/s500/20120906-03.png" alt="生成されたメッセージ"/></figure>



<p></p>



<p>すると下に連々と分割されたメッセージが出てきます。</p>



<p>これをコピーしてTwitterで投稿するも良し、<br />
各メッセージについている「Tweet」ボタンをクリックしても投稿する事が出来ます。<br />
「Tweet」ボタンで投稿完了すると、そのメッセージは消えます。</p>



<h2 class="wp-block-heading">注意事項など</h2>



<ul class="wp-block-list">
<li><br /><p>分かりやすいTwiplaを例に出してますが、ユーザーリストがその形式でなければいけないなんて事はありません。<br /><br />何らかの文字で区切ってあるTwitterアカウントの羅列であれば、動くはずです。</p><br /></li>



<li><br /><p>URLを短縮してから入力すると、ツイート時に文字制限オーバーのエラーが出る事があります。<br /><br />（サードパーティの短縮サービスより、公式の t.co の方が文字数が多い場合があるせいではないかと思っています）</p><br /></li>



<li><br /><p>「以下のユーザーは文字数の関係で入りませんでした。」というメッセージが表示される事があります。<br /><br />これは、メッセージと足すだけで文字数制限を超えてしまうユーザーです。メッセージを短くする等の工夫が必要です。</p><br /></li>



<li><br /><p>「Tweet」ボタンは初回だけ認証画面が表示されます。<br /><br />二つ目以降のメッセージでは表示されずにそのままツイートされるのでご注意ください。</p><br /></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p>たまたま大規模なパーティに関わる機会があったので、作ってみました。<br />
幹事さんの手助けになれば、幸いです。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Anywhereのクラスを使ってユーザをフォローさせてみる</title>
		<link>https://blog.mach3.jp/2011/06/16/follow-user-with-anywhere.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Thu, 16 Jun 2011 02:46:02 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Anywhere]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Twitter]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1856</guid>

					<description><![CDATA[Twitterの@anywhereは既に提供を終了していますので、本記事の内容も利用出来ません。 Sunsetting @Anywhere &#124; Twitter Developers 先日、Twitter公式から「フォロー [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="caution">
  Twitterの@anywhereは既に提供を終了していますので、本記事の内容も利用出来ません。<br /> <a href="https://dev.twitter.com/blog/sunsetting-anywhere">Sunsetting @Anywhere | Twitter Developers</a>
</p>



<p>先日、Twitter公式から「<a href="http://twitter.com/about/resources/followbutton">フォローボタン</a>」がリリースされましたね。<br />
とても便利そうなのですが、今日はそのボタンのお話ではなく、<br />
<a href="http://dev.twitter.com/anywhere">@anywhere</a>を使ってユーザをフォローさせるスクリプトのお話です。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/-vJVWN8ZLy2s/TfloJNz0uUI/AAAAAAAABSs/-45ltvs2EWs/201106161116.png" alt="User.follow"/></figure>



<p></p>



<span id="more-1856"></span>



<h2 class="wp-block-heading">currentUser.follow()について</h2>



<p>AnywhereのTwitterオブジェクトに生えているcurrentUserにfollowメソッドがあるのですが、<br />
これは、「このユーザーで誰かをフォローする」ためのメソッドではなく、<br />
「このユーザーをフォローする」ためのメソッドです。<br />
つまり、</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">twttr.anywhere(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">tw</span>)</span>{
    <span class="hljs-keyword">if</span>( tw.isConnected() ){
        tw.currentUser.follow();
    } <span class="hljs-keyword">else</span> {
        <span class="hljs-comment">// ログインボタン表示</span>
    }
});
</code></span></pre>


<p>こんなふうにしても自分で自分をフォローしようとしてるだけで何も起きません。<br />
引数とか渡してみても変わらず。<br />
じゃぁどうするの。</p>



<h2 class="wp-block-heading">currentUserのidをすり替える例</h2>



<p>が、こちらに掲載されていました。<br />
<a href="http://www.polidog.jp/2010/07/17/anywhere%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%95%E3%82%A9%E3%83%AD%E3%83%BC%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%E3%82%8A/">@Anywhereを使ってフォローしてみたり | polidog lab++</a></p>



<p>要するに、idを参照してフォローの処理を行っているなら、<br />
フォローの時だけidを差し替えて別人になってもらえば良いと。<br />
なるほど参考になりました。</p>



<h2 class="wp-block-heading">別のインスタンスを作る例</h2>



<p>上の記事を読んでから気付いたのですが、<br />
currentUserと同じクラスのインスタンスを作った方が理にかなっているのではないかと。<br />
探してみたら、TwitterオブジェクトにUserというクラスが生えていました。</p>



<h3 class="wp-block-heading">Userクラスの使い方</h3>



<p>オブジェクトでオプションを渡してnewしてやればもう使えます。<br />
そしてfollow()すれば、今サインインしてるユーザ(currentUser)から<br />
目的のユーザ（myUser）をフォローさせられるわけですね。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">twttr.anywhere(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">tw</span>)</span>{
    <span class="hljs-keyword">if</span>( tw.isConnected() ){
        <span class="hljs-keyword">var</span> myUser = <span class="hljs-keyword">new</span> tw.User({ <span class="hljs-string">"id"</span> : <span class="hljs-string">"XXXXXXXX"</span> }); <span class="hljs-comment">// IDを入れてね！</span>
        <span class="hljs-comment">// ↓これでid:XXXXXXXXのユーザをフォロー出来ます</span>
        myUser.follow(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">success</span>)</span>{
            <span class="hljs-keyword">if</span>( success ){ alert(<span class="hljs-string">"フォローしたよ！"</span>); }
            <span class="hljs-keyword">else</span> { alert(<span class="hljs-string">"なんか失敗したよ！"</span>); }
        });
    } <span class="hljs-keyword">else</span> {
        <span class="hljs-comment">// ログインボタン表示</span>
    }
});
</code></span></pre>


<p>follow()の引数に渡せるコールバック関数には、<br />
フォローが成功したか否かのboolが引数として渡されます。</p>



<h2 class="wp-block-heading">既にフォローされているかを確認してからフォローさせる</h2>



<p>既にフォローされている場合はfollow()する必要がないので、<br />
currentUser.isFollowing()で条件分岐をしてみます。</p>



<p>第一引数にフォロー済みかどうかを調べたいID、<br />
第二引数に結果を受け取る為のコールバック関数を渡して使います。<br />
コールバック関数にはフォロー済みか否か真偽値で渡されます。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">twttr.anywhere(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">tw</span>)</span>{
    <span class="hljs-keyword">var</span> id_str, callback;
    id_str = <span class="hljs-string">"XXXXXXXX"</span>, <span class="hljs-comment">//フォローさせたいID</span>
    callback = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">f</span>)</span>{
        <span class="hljs-keyword">if</span>( f ){ alert(<span class="hljs-string">"フォロー済みだよ！"</span>); }
        <span class="hljs-keyword">else</span> { alert( <span class="hljs-string">"まだフォローしてないよ！"</span>); }
    };
    tw.currentUser.isFollowing( id_str, callback );
});
</code></span></pre>


<h2 class="wp-block-heading">もろもろまとめてみた例</h2>



<p>サインインの条件分岐も併せてまとめてみる。</p>



<p><strong>HTML</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"button"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"follow-me-button"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"フォローしてね！"</span> /&gt;</span>
</code></span></pre>


<p><strong>JavaScript</strong></p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">twttr.anywhere( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">tw</span>)</span>{
    <span class="hljs-keyword">var</span> id_str, followMe;
    id_str = <span class="hljs-string">"XXXXXXXXX"</span>;
    followMe = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
        <span class="hljs-keyword">if</span>( !tw.isConnected() ){
            <span class="hljs-comment">// サインインしてなければしてもらおう</span>
            tw.bind( <span class="hljs-string">"authComplete"</span>, followMe );
            tw.signIn();
            <span class="hljs-keyword">return</span>;
        }
        tw.currentUser.isFollowing( id_str, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> f </span>)</span>{
            <span class="hljs-keyword">if</span>( f ){
                alert( <span class="hljs-string">"もう既にフォローしています"</span> );
            } <span class="hljs-keyword">else</span> {
                <span class="hljs-keyword">if</span>( confirm( <span class="hljs-string">"本当にフォローしちゃっていいですか？"</span> ) ){
                    ( <span class="hljs-keyword">new</span> tw.User({ <span class="hljs-attr">id</span>:id_str }) ).follow(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
                        alert( <span class="hljs-string">"フォローしました"</span> );
                    });
                }
            }
        });
    };
    $(<span class="hljs-string">"#follow-me-button"</span>).click( followMe );
});
</code></span></pre>


<h2 class="wp-block-heading">まとめ</h2>



<p>単純にフォローさせるだけなら公式のボタンで事足りますが、<br />
例えばキャンペーンサイト等でツイートさせるついでにフォローしてもらう、<br />
みたいな処理をしたい場合に使える機能ですね。</p>



<p>ここらへんの情報がドキュメントになって公開されていれば幸せになれるのですが、<br />
私が探した限りでは公式の物は見つかりませんでした。探し方が悪いのかな…？</p>



<p>もしご存知の方いらっしゃいましたら優しく教えてください。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>@anywhereで認証してみる備忘録</title>
		<link>https://blog.mach3.jp/2010/09/14/auth-anywhere.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Tue, 14 Sep 2010 14:35:46 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Anywhere]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[Twitter]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=682</guid>

					<description><![CDATA[Twitterの@anywhereは既に提供を終了していますので、本記事の内容も利用出来ません。 Sunsetting @Anywhere &#124; Twitter Developers @anywhereはTwitter公式 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="caution">
  Twitterの@anywhereは既に提供を終了していますので、本記事の内容も利用出来ません。<br /> <a href="https://dev.twitter.com/blog/sunsetting-anywhere">Sunsetting @Anywhere | Twitter Developers</a>
</p>



<p>@anywhereはTwitter公式から提供されている、<br />
どのサイトでもTwitterの機能が使えるようになる便利なライブラリです。<br />
cf) <a href="/2010/04/twitter-anywhere.html">ブログで@anywhereを試してみた！ ～ どこでもTwitter</a></p>



<p>今回はこの@anywhereでユーザー認証をしてみましょう。<br />
※アプリケーションの登録等は割愛致します。<br />
※jQueryを使用しています。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/TI-FvKGTMFI/AAAAAAAABB4/DWq3p5mDXQM/201009142322.png" alt="@anywhereで認証してみる備忘録"/></figure>



<p></p>



<span id="more-682"></span>



<ul class="wp-block-list">
<li><a href="#auth-basic">@anywhereの基本</a></li>



<li><a href="#auth-func">認証に必要な機能</a></li>



<li><a href="#auth-demo">デモ</a></li>



<li><a href="#auth-source">コード抜粋</a></li>



<li><a href="#auth-mendokusee">めんどくせーな、と思ったら</a></li>



<li><a href="#auth-fin">まとめ</a></li>
</ul>



<h2 class="wp-block-heading" id="auth-basic">@anywhereの基本</h2>



<h3 class="wp-block-heading">ライブラリのロード</h3>



<p>公式で登録したアプリケーションのAPIkeyを付加したURLで、ライブラリをロードします。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"http://platform.twitter.com/anywhere.js?id=&lt;ここにAPIkeyを記述&gt;&amp;v=1"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></span></pre>


<h3 class="wp-block-heading">twttr.anywhere</h3>



<p>@anywhereはtwttr.anywhereというメソッドが全ての基本です。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">twttr.anywhere(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">tw</span>)</span>{
    <span class="hljs-comment">// ここでtwを使ってなんやかんやする</span>
});
</code></span></pre>


<p>twttr.anywhereに渡したfunctionは、<br />
anywhereを使用する準備が整った時にコールされます。<br />
ここでfunctionに渡されているtwに様々な便利な機能が備えられているので、<br />
それらを使ってなんやかんやするわけですね。</p>



<h2 class="wp-block-heading" id="auth-func">認証に必要な機能</h2>



<p>cf) <a href="http://dev.twitter.com/anywhere/begin">@anywhere公式ドキュメント（英語）</a></p>



<h3 class="wp-block-heading">tw.isConnected()</h3>



<p>ユーザー認証が済んでいるかどうかをbool値で返すメソッド。<br />
認証済みかそうでないかで処理を切り分けたい時に使います。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">if</span>( tw.isConnected() ){
    <span class="hljs-comment">// 認証済みの場合の処理</span>
} <span class="hljs-keyword">else</span> {
    <span class="hljs-comment">// 未認証の場合の処理</span>
}
</code></span></pre>


<h3 class="wp-block-heading">tw.signIn()</h3>



<p>Twitterにサインインする為のメソッドです。<br />
これをコールすると、別ウィンドウでTwitterに接続するページが開き、<br />
そのページでログインして戻ってくると認証が完了する仕組みです。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$(<span class="hljs-string">"#Signin"</span>).live(<span class="hljs-string">"click"</span>, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">e</span>)</span>{
    tw.signin();
});
</code></span></pre>


<h3 class="wp-block-heading">twttr.anywhere.signOut()</h3>



<p>Twitterからサインアウトする為のメソッドです。<br />
※signIn()とは親が異なる点に注意。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$(<span class="hljs-string">"#Signout"</span>).live(<span class="hljs-string">"click"</span>, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">e</span>)</span>{
    twttr.anywhere.signOut();
});
</code></span></pre>


<h3 class="wp-block-heading">authCompleteイベント</h3>



<p>認証が完了すると、twの&#8221;authComplete&#8221;イベントがトリガーされます。<br />
認証完了時に処理を行いたい時にbindして使います。<br />
「おや？bindってjQueryじゃねーの？」とか思われるかもしれませんが、<br />
実際anywhere自体がjQueryを使用して書かれているみたいです。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">tw.bind(<span class="hljs-string">"authComplete"</span>, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">e</span>)</span>{
    alert(<span class="hljs-string">"認証完了！"</span>);
});
</code></span></pre>


<h3 class="wp-block-heading">tw.currentUser.data()</h3>



<p>tw.currentUserには現在接続中のユーザーの情報が格納されています。<br />
ユーザーの情報を引き出すには、data()メソッドを用います。<br />
console.log()してみると分かりますが、プロパティアクセスでも取得出来ます。<br />
※公式ドキュメントでは言及されていないので、念のためdata()を経由した方がよいかもしれません</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-comment">// data()で取得</span>
alert( tw.currentUser.data(<span class="hljs-string">"screen_name"</span>) + <span class="hljs-string">"でログイン中です"</span> );
<span class="hljs-comment">// プロパティアクセスで取得</span>
alert( tw.currentUser.screenName + <span class="hljs-string">"でログイン中です"</span> );
</code></span></pre>


<p>取得できるユーザー情報のリストは、APIドキュメントを参照<br />
…するよりもconsole.log()してプロパティ見たほうが多分はやい。</p>



<h2 class="wp-block-heading" id="auth-demo">デモ</h2>



<p class="caution">
    デモページは閉鎖致しました。
</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/TI-FvAiWf1I/AAAAAAAABB8/sLQRotrSt6Y/201009142300.png" alt="Demo"/></figure>



<p></p>



<ul class="wp-block-list">
<li>「Signin」ボタンをクリックすると認証用のページが開きます</li>



<li>認証が完了すると表示が切り替わってユーザー情報が表示されます</li>



<li>テンプレートに<a href="http://github.com/mach3/js-jquery-render">jquery.render.js</a>を使ってみました<br /><br />cf) <a href="/2010/09/jquery-render-js.html">シンプルなjQueryテンプレートプラグインを書いてみる</a></li>
</ul>



<h2 class="wp-block-heading" id="auth-source">コード抜粋</h2>


<pre class="wp-block-code"><span><code class="hljs language-javascript">twttr.anywhere( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">tw</span>)</span>{
    <span class="hljs-keyword">var</span> refresh = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
        $(<span class="hljs-string">"#LoginStatus"</span>).html(<span class="hljs-string">""</span>);
        <span class="hljs-keyword">if</span>( !tw.isConnected() ){
            $(<span class="hljs-string">"#template-loginstatus-normal"</span>)
            .render()
            .appendTo(<span class="hljs-string">"#LoginStatus"</span>);
        }<span class="hljs-keyword">else</span>{
            <span class="hljs-keyword">var</span> cu = tw.currentUser;
            $(<span class="hljs-string">"#template-loginstatus-connected"</span>)
            .render({
                <span class="hljs-string">"screen_name"</span>: cu.data(<span class="hljs-string">"screen_name"</span>),
                <span class="hljs-string">"profile_image_url"</span>: cu.data(<span class="hljs-string">"profile_image_url"</span>),
                <span class="hljs-string">"name"</span>: cu.data(<span class="hljs-string">"name"</span>),
                <span class="hljs-string">"description"</span> : cu.data(<span class="hljs-string">"description"</span>),
                <span class="hljs-string">"location"</span>: cu.data(<span class="hljs-string">"location"</span>),
                <span class="hljs-string">"followers_count"</span> : cu.data(<span class="hljs-string">"followers_count"</span>),
                <span class="hljs-string">"friends_count"</span> : cu.data(<span class="hljs-string">"friends_count"</span>),
                <span class="hljs-string">"listed_count"</span> : cu.data(<span class="hljs-string">"listed_count"</span>)
            })
            .appendTo(<span class="hljs-string">"#LoginStatus"</span>);
        }
    };
    $(<span class="hljs-string">"#LoginStatus .signin"</span>).live( <span class="hljs-string">"click"</span>, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">e</span>)</span>{
        tw.signIn();
        <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;
    });
    $(<span class="hljs-string">"#LoginStatus .signout"</span>).live( <span class="hljs-string">"click"</span>, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">e</span>)</span>{
        twttr.anywhere.signOut();
        refresh();
        <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;
    });
    tw.bind(<span class="hljs-string">"authComplete"</span>, refresh);
    refresh();
});
</code></span></pre>


<h2 class="wp-block-heading" id="auth-mendokusee">めんどくせーな、と思ったら</h2>



<p>簡単に認証ボタンが実装できる、connectButton()というメソッドが提供されています。<br />
特にカスタマイズする必要がなかったり、面倒な時はこれを使っちゃえばいいですね。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/TI-Fvaa6q-I/AAAAAAAABCA/RUpaFNyoEXs/201009142305.png" alt="connectButton()"/></figure>



<p></p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">twttr.anywhere( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">tw</span>)</span>{
    tw(<span class="hljs-string">"#MyConnectButton"</span>).connectButton();
});
</code></span></pre>


<p>サインアウトボタンにトグルしてくれたりはしないので、<br />
欲しい場合は自分で実装する必要があります。</p>



<h2 class="wp-block-heading" id="auth-fin">まとめ</h2>



<p>フロントエンドだけで済んでしまうようなWebアプリケーションならば、<br />
お手軽に使えて良いですね。<br />
Webベースのクライアントなんかを作りたい時にも良いかもしれません。<br />
さ、次はPHPのOAuthだ。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ブログで@anywhereを試してみた！ ～ どこでもTwitter</title>
		<link>https://blog.mach3.jp/2010/04/25/twitter-anywhere.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Sun, 25 Apr 2010 23:45:00 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[WebClip]]></category>
		<category><![CDATA[Anywhere]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[Twitter]]></category>
		<guid isPermaLink="false">http://lab.mach3.jp/2010/04/25/%e3%83%96%e3%83%ad%e3%82%b0%e3%81%a7anywhere%e3%82%92%e8%a9%a6%e3%81%97%e3%81%a6%e3%81%bf%e3%81%9f%ef%bc%81-%ef%bd%9e-%e3%81%a9%e3%81%93%e3%81%a7%e3%82%82twitter.html</guid>

					<description><![CDATA[Twitterの@anywhereは既に提供を終了していますので、本記事の内容も利用出来ません。 Sunsetting @Anywhere &#124; Twitter Developers 先日リリースされた@anywhere、 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="caution">
  Twitterの@anywhereは既に提供を終了していますので、本記事の内容も利用出来ません。<br /> <a href="https://dev.twitter.com/blog/sunsetting-anywhere">Sunsetting @Anywhere | Twitter Developers</a>
</p>



<p>先日リリースされた@anywhere、いわゆる「どこでもTwitter」を試してみました。<br />
Twitterと連動するマッシュアップサイトを作るのに便利そうな@anywhereですが、<br />
ブログ等でも簡単に部品を組み込むのに活用できます。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/S9RUGhXrRlI/AAAAAAAAA24/4ziq8R6zRhQ/s800/201004252325.png" alt="@anywhere"/></figure>



<p></p>



<span id="more-47"></span>



<dl>
<dt>こちらもあわせて</dt>
<dd><a href="/2010/09/auth-anywhere.html">@anywhereで認証してみる備忘録</a></dd>
</dl>



<h2 class="wp-block-heading">0. 準備をしよう！</h2>



<p>まずはAPIの取得から。こちらで登録をしましょう。<br />
<a href="http://dev.twitter.com/anywhere/apps/new">New Twitter Application | dev.twitter.com</a><br />
必要事項を明記のうえ、Register Applicationをクリック。</p>



<p>登録が済んだら、APIキーが配布されます。<br />
そのAPIキーを元に、ロードするJSファイルのURLを作りましょう。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"http://platform.twitter.com/anywhere.js?id=YOUR_API_KEY<span class="hljs-symbol">&amp;amp;</span>v=1"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></span></pre>


<p>YOUR_API_KEYの部分に配布されたAPIキーを代入します。<br />
このscript要素をHTMLの中に記述すれば、準備完了です。</p>



<h2 class="wp-block-heading">1. JavaScriptの書き方の基本</h2>



<p>@anywhereのスクリプティングの基本はこんな感じです。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">twtr.anywhere( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> tw </span>)</span>{
    tw.linkifyUsers(); <span class="hljs-comment">// or do something</span>
} );
</code></span></pre>


<p>twtr.anywhere() はjQuery.ready() みたいなもので、<br />
@anywhereを使う準備が整うと、渡されたfunctionを走らせます。<br />
そのfunctionに渡される引数（ここでは「tw」）が、<br />
@anywhereの様々な機能を提供してくれるオブジェクトとなっています。</p>



<h2 class="wp-block-heading">2. followmeボタンをつけてみる</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/S9RUG3u6CEI/AAAAAAAAA3A/-1Fg_5JjCoo/s800/201004252334.png" alt="followmeボタン"/></figure>



<p></p>



<p>こういうやつですね。 まずフォローミーボタンを表示させる場所を次のようにマークアップするとします。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"#myFollowMeButton"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
</code></span></pre>


<p>idはお好きな名前をつけましょう。 次にスクリプトです。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">twtr.anywhere( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> tw </span>)</span>{
    tw(<span class="hljs-string">"#myFollowMeButton"</span>).followmeyButton(<span class="hljs-string">"mach3ss"</span>);
} );
</code></span></pre>


<p>実にjQueryライクな！CSSセレクタエンジンもjQueryと同じSizzleです。<br />
followmeyButton() の引数には、自分のアカウントを@抜きで渡してあげましょう。</p>



<h2 class="wp-block-heading">3. ホバーカードを表示してみる</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/S9RUHC9dj0I/AAAAAAAAA3E/XeimlCP253s/s800/201004252335.png" alt="ホバーカード"/></figure>



<p></p>



<p>こういうやつです。 HTMLはこんな感じにしてみます。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">p</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"MyProfile"</span>&gt;</span>TwitterAccount : @mach3ss <span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
</code></span></pre>


<p>そしてスクリプトです。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">twtr.anywhere( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> tw </span>)</span>{
    tw(<span class="hljs-string">"#MyProfile"</span>).hoverCards();
} );
</code></span></pre>


<p>これで、「mach3ss」の部分にリンクが張られ、<br />
マウスオーバーする事でプロフィールのカードが表示されるようになります。</p>



<p>尚、ユーザーネームの部分に既にリンクが張ってあったりする場合はうまく動作しない場合があります。<br />
その場合には、inferオプションやlinkifyオプションを活用しましょう。詳しくは↓で！<br />
<a href="http://dev.twitter.com/anywhere/begin#hovercards">Welcome to @Anywhere | dev.twitter.com</a></p>



<h2 class="wp-block-heading">4. ツイートボックスを表示してみる</h2>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/S9RUHBJx3bI/AAAAAAAAA3I/SzbSLqqXFZo/s800/201004252337.png" alt="ツイートボックス"/></figure>



<p></p>



<p>こういうやつ。<br />
コメント欄の変わりにTwitterにつぶやいてもらう、というのもアリだと思います。</p>



<p>HTMLはこんな感じで。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"#myTweetBox"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
</code></span></pre>


<p>スクリプト。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">twtr.anywhere( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> tw </span>)</span>{
    tw(<span class="hljs-string">"#myTweetBox"</span>).tweetBox( {
        <span class="hljs-attr">width</span> : <span class="hljs-number">580</span>,
        <span class="hljs-attr">label</span> : <span class="hljs-string">"コメントをつぶやく"</span>,
        <span class="hljs-attr">defaultContent</span> : <span class="hljs-string">"#blogmach3jp @mach3ss"</span>
    } );
} );
</code></span></pre>


<p>オプションをオブジェクトリテラルで渡します。<br />
内容は以下の通り。</p>



<dl>
<dt>counter : Boolean = true</dt>
<dd>文字カウンターを表示/非表示</dd>
<dt>height : Number = 515</dt>
<dd>ツイートボックスの高さ</dd>
<dt>width : Number = 65</dt>
<dd>ツイートボックスの幅</dd>
<dt>label : String = “What’s happening?”</dt>
<dd>ツイートボックスの上に表示されるラベルの文字列</dd>
<dt>defaultContent : String = none</dt>
<dd>ツイートボックス内のデフォルト値</dd>
<dt>onTweet : Function = none</dt>
<dd>ツイートボックスから送信された時に呼ばれるイベントリスナーを登録。</dd>
</dl>



<p>defaultContentにハッシュタグや自分のユーザー名を入れておくと便利ですね。</p>



<h2 class="wp-block-heading">5. もっと色々したい！</h2>



<p>という方は公式のドキュメントをご参照ください。<br />
<a href="http://dev.twitter.com/anywhere">Welcome to @Anywhere | dev.twitter.com</a></p>



<figure class="wp-block-image"><img decoding="async" src="http://lh4.ggpht.com/_JJkNs5Ixl70/S9RUG8cY6XI/AAAAAAAAA28/I4Sy-yHcpdE/s800/201004252327.png" alt="@Anywhere"/></figure>



<p></p>



<p>認証関連の情報なども色々記載されています。</p>



<p>フロントエンドの技術者さん達も、@anywhereの登場で<br />
かなり実装が楽になったのではないでしょうか。<br />
創作意欲がわいてきますね！</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
