※タイトル変更しました。「脚注記法」ですね。
はてなブログや、はてなダイアリーには、脚注機能みたいなのがあります。
(さらに…)
※タイトル変更しました。「脚注記法」ですね。
はてなブログや、はてなダイアリーには、脚注機能みたいなのがあります。
(さらに…)
5行程度のPHPスクリプトでTwitter自動フォロー返し(のようなもの)を実現する方法です。
単に「実現方法」の紹介で、ソレを推奨する気はありませんし、そもそも、ここで紹介するスクリプトはエラー処理とか一切していないので、「たぶん動作はするけれど、実際には使えないもの」です。(色々な意味で。)
ちなみにフォローまたはフォロワーが5000を超えてるアカウントでは正常に動作しないと思います。ネタ記事にそこまでこだわる必要無いと思いますし。
一度の実行で最大15件のフォロー返しが可能なはずです。
cron等で、20分に1回実行~とかで「自動フォロー返し」のような事が実現出来るかもしれません。
エラー処理してないので、そのまま使う事はおすすめしませんし、そもそも自動フォロー返しというもの自体おすすめしませんが。
ライブラリ twitteroauthを利用する必要があります。
ソースは以下。
<?php require 'twitteroauthのパス'; $tw = new TwitterOAuth('こんしゅーまきー','こんしゅーまきーしーくれっと' , 'あくせすとーくん', 'あくせすとーくんしーくれっと'); $targets = array_chunk(array_diff($tw->get('followers/ids', array('stringify_ids'=>'true','count'=>5000))->ids,$tw->get('friends/ids', array('stringify_ids'=>'true','count'=>5000))->ids), 15)[0]; foreach($targets as $id){$tw->post('friendships/create', array('user_id' => $id));}
twitteroauthのパス、こんしゅーまきー、こんしゅーましーくれっと、あくせすとーくん、あくせすとーくんしーくれっと はそれぞれ適宜置き換える必要があります。
別に「きけんだああ!」なんてあったまの悪い事を叫ぶつもりはありませんが…。
linkis.comというサービスが「個人的にちょっと・・・。」という話です。
どういうサービスかというと…。
URLを含むツイートが投稿した場合に、そのツイートを削除して、URLを自身の短縮URL(短縮どころか長くなってるけれど)に置き換えて、再投稿する感じのサービスです。
んで、その再投稿されたURLを踏むと…。ln.isドメインからlinkis.comドメインにリダイレクトされ…。
のような感じで、フレーム内に最初に投稿されたURLのウェブサイトが展開されます。
ついでに、「Linkis.comでTwitterへの共有は特別なものになります!」的な宣伝ポップアップ付き。※一度閉じるとCookie消えるまで表示されないようですが。
んで、上記のConnect Twitter accountをクリックするとおなじみのアプリケーション認可画面。
ちなみに、私が実際に認可してみた感じだと、これを認可しただけでは、「URLを含むツイートの削除→再投稿」は行われませんでした。
ていうか、link.isにログインしてSetting画面を見てみると…。
みたいな感じで、Twitter automation(リンクの置換)はデフォルトでは無効です。
「利用するなら利用規約とプライバシーポリシーに同意する必要があるよ!」的な注釈付きで。
んで、これをあえて有効化する事で、この記事の冒頭で触れたような、リンク置換(つぅか、ツイートを削除した上で置き換え)が行われるようになります。
「ユーザが認可した上であえてオプションを有効化して利用しているのならそれでいいじゃないか。」って感じではあるのですが、そのURL置換が個人的に「大迷惑」なのです。
置換されたURLはフレーム内に元のURLのウェブサイトを表示する事になるので…。
元のURLがTwitter連携サービス等であるなら、Twitter は X-Frame-Options が設定されているので…。
フレーム内の元のURLのウェブサイト認可画面に飛んだ時点でブラウザによって白紙ページなりエラーページ等が表示され、認可画面さえ開く事ができません。(ブラウザによってその表示は変わるのですが、めんどくさいので省略します。)
要は、折角URLを共有してもらっても、共有者(URLの投稿者)がlinkis.comのサービスを利用していると、そのリンクが置き換えられてしまい、そのリンクからやってきた方は、結果としてサービスを利用出来ないということです。
とりあえずFirefoxでは、白紙ページが表示されるのみで、デベロッパーツールでのエラーは以下のような感じ。
まぁ、これだけなら、そのリンクを踏んでやってきたユーザがサービスを認可出来ないだけなのでそれ程大きな問題ではないです。
ただ…。
他所のフレーム内に表示された広告がクリックされたとして、その収益が反映されるのか否かが超問題です。(実際確認してないのでどういう扱いになるのかは知りませんけど)
他人のせいで、たとえ一円でも損するかもしれないと想像するだけで軽く発狂しそうです。
気持ちとしては、
みたいな。
バフたんおこです。激おこです。
ていうか、ln.isでtwitter検索してそのユーザの発言等を見てみた感じ、それを「認可する」まではともかくとして、わざわざ設定ページでURL置換機能を有効化するようなユーザ層・・・?うーん。とか。
中には、まったく意識せずに、寝ぼけて、アプリケーションを認可した上で、意図しないままに設定画面へ行き、URL置換オプションを有効化している方もいらっしゃるかもしれないので、一応、自身のアカウントでURL置換が行われてないか「なんとなく」確認する方法を書いておきますね!
https://twitter.com/search?f=realtime&q=ln.is from:○○&src=typd
↑のURLの○○の部分に自分のスクリーンネーム入れて、ブラウザのロケーションバーに貼り付けてね!
もしも貴方が意図せず、「寝ぼけて「linkis.com」を認可した上で設定画面へ〜(略)」って感じでURL付きツイートがln.isに置換されてしまっている状態で、それを好ましく無いと考えるのであれば、Twitter公式(WEB)の設定→アプリ連携から連携解除とかすると良いかもしれませんね!
Twitter連携アプリの解除方法については以下の記事でも説明しています。
http://www.oteage.com/entry/2015/01/07/010500
私自身が「個人的に迷惑」だと言っているだけで、linkis.comのサービスを否定する気はありません。
好きで利用している方は別にソレでよいと思います。
「自覚した上で好きで使っている」のなら。
ブログを書いた事をFaceBookページに投稿しようとしたら怒られてしまいました。
linkis.comへのリンクを含むという事ではじかれたぽいです。
こまった。
確か、表示ルールが厳格化されたのは、TwitterAPI1.1に移行してからなので、いまさらの話ではあるのだけれど…。
Twitterのツイートを利用する場合…。
たとえば、ツイート本文(text)において…。
みたいなルールがあったりする。(他にもたくさんあるけれど、今回は本文の話のみ。)
1と2に関しては正規表現でどうにでもなるとはいえ…。(実際そのように対応している方もいらっしゃる模様)
問題は3つ目。「え…?わざわざリクエストを試みて元URLを取得した上で置換しないとダメなの…うざっ!」とか最初は思ってたのだけれど…。
ドキュメントをよく見てみると、ツイート取得系のAPIリクエスト時にinclude_entitiesをtrueにしてやる事で…。
以下のようにテキストに含まれるハッシュタグ・メンション(スクリーンネーム)・URL等についての情報が返ってくる。
["entities"]=> array(4) { ["hashtags"]=> array(0) { } ["symbols"]=> array(0) { } ["user_mentions"]=> array(0) { } ["urls"]=> array(1) { [0]=> array(4) { ["url"]=> string(22) "http://t.co/rOptxPlCAj" ["expanded_url"]=> string(31) "https://otapps.net/archives/3662" ["display_url"]=> string(24) "otapps.net/archives/3662" ["indices"]=> array(2) { [0]=> int(47) [1]=> int(69) } } } }
なので、スクリーンネームやらハッシュタグは勿論、URLに関してもこれらのデータを用いる事で、単純な「置換」でどうにでもなる感じ。
何か色々みてると正規表現駆使して頑張ってる方もいらっしゃるようなので、一応、Tipsとして記事にしてみました。(ここ数日、どんなに下らない事でもブログ更新しよう!みたいなノリなので。)