「TwitterOAuthを使ってPHPからtweitterへ投稿」「Twitterアカウントを使ったソーシャルログイン」をマスターすれば、Twitterの他人アカウントでつぶやく事が簡単にできてしまいます。
簡単とはいっても、すべての他人アカウントでつぶやけるわけではないです。
「他人アカウントでつぶやく=不正な事をする」という感じもしますが、Twitterで用意されているAPIを利用した正規の方法になります。
悪用する人もいると思いますが、悪意ある連携プログラムはすぐに廃れてしまうので、上手く活用してプロモーションに生かしてください。
他人のアカウントでつぶやくのに必要な事
Twitterの他人のアカウントでつぶやくには以下の事が必要です。
- TwitterOAuthを使ってPHPからtweitterへ投稿する技術
- Twitterアカウントを使ったソーシャルログイン技術
- 他人のアカウントがアプリ連携を認証する
Twitterへ投稿する技術
「TwitterOAuthを使ってPHPからtweitterへ投稿!自動でつぶやくtwitter botを作成しよう」の記事でPHPからTwitterへつぶやく方法を紹介しています。
つぶやく際に必要な4つのkeyは、自分のアカウントで作成したアプリのkeyでした。
その4つのkey「Consumer Key」「Consumer Secret」がアプリの判別を、「Access Token」「Access Token Secret」がアカウントの判別をしています。
なので、他人アカウントの「Access Token」「Access Token Secret」を使えば、他人のアカウントでつぶやく事ができます。
でも、他人アカウントの「Access Token」「Access Token Secret」は分かりませんよね。
そこで必要なのがTwitterアカウントを使ったソーシャルログイン技術なのです。
Access Tokenを取得するソーシャルログイン技術
ソーシャルログイン技術は他人のアカウントがアプリ連携を認証すれば、自分の作ったアプリと連携する事ができます。
とはいえ、連携を認証したからといって何でも出来るという事ではありません。
アプリ作成時に設定するパーミッションによってできる事が変わってきます。
他人のアカウントでつぶやく為には、「Read and Write」「Read,Write and Access direct messages」を設定してください。
パーミッションの設定は記事「【Twitter連携アプリ】TwitterAPIを使ったWebアプリケーション作成に必要なこと」の目次「連携アプリケーションPermissionsの設定」を読んでください。
アプリ連携を認証すると、認証したアカウントの「oauth_token」「oauth_token_secret」という名前のkeyが取得できます。
このkeyが「Access Token」「Access Token Secret」になります。
他人のアカウントがアプリ連携を認証
他人のアカウントがアプリを認証して、連携をキャンセルしない限りは設定したPermissionsの範囲内でアカウントの操作が出来るようになります。
しかし、Twitterアプリ連携の認証画面には「このアプリケーションは次のことができます。」という項目名で、Permissionsの設定が表示されます。
Read Onlyでは
タイムラインのツイートを見る。
フォローしている人を見る
Read and Writeでは
タイムラインのツイートを見る。
フォローしている人を見る、新しフォローする
プロフィールを更新する
ツイートする
Read,Write and Access direct messagesでは
タイムラインのツイートを見る。
フォローしている人を見る、新しくフォローする
プロフィールを更新する。
ツイートする。
ダイレクトメッセージを見る。
登録済みのメールアドレスを取得する。
「Read Only」のパーミッション以外では、アプリ作成者の信用度が高くない限りは認証されないと思います。
でも、「誰かが私のアカウントでつぶやいた!」「Twitterのアカウントが乗っ取られた!」という人も多くいるので、アプリができる事を確認する人は少ないようですね。
他人のアカウントでつぶやく方法
流れをザッと説明すると
- アプリ設定でPermissionsを「Read and Write」か「Read,Write and Access direct messages」に設定
- Twitterソーシャルログインを作成
- 他人がアプリ連携を認証
- 「oauth_token」「oauth_token_secret」を取得
- アプリのAPIkey、アカウントのTokenを使ってつぶやく
になります。