SNSとの連携

drupalのサイトに記事を投稿した際に、SNSへも投稿できるように連携させてみました。

今回連携させるSNSは以下の通りです。

  • Twitter
  • Facebook
  • Mixi

※drupalサイトのコンテンツのうち、連携させるのはブログコンテンツタイプのみにしています。
 

連携の方法

  1. drupalサイトからtwitterへ連携
  2. twitterからfacebookへ連携
  3. twitterからmixiへ連携

drupalとTwitterの連携

コンテンツタイプ「blog」に記事を投稿する際に、Twitterへ投稿するようにします。
 

Web用アプリケーションの作成

Twitterの開発サイトにログインして、Web用アプリケーションを作成します。
作成するアプリケーションは、Twitterと連携させるのに必要となるTwitterアカウントの認証のために使用します。

認証にはOAuthを使用します。
OAuthは様々な認証アルゴリズムに対応しているので、Twitterアカウントの認証にも使用できます。

アプリケーションの作成はこちらのサイトに詳しく説明があります。
つぶやきを投稿するので、Application Typeには「Read and Write」を選択しました。
 

drupalモジュールの導入

必要なモジュール

twitter 7.x-5.8
OAuth 7.x-3.2
Views 7.x-3.7
Chaos tools 7.x-1.4

 

モジュールはdrupal標準の方法でインストールします。
Twitterモジュールは、「Twitter actions」、「Twitter Post」、「Twitter Signin」、「Twitter Tags」のサブモジュールが含まれています。
使いたい機能に併せて、サブモジュールを有効にします。
今回は、「Twitter Post」を有効にしました。
 

Twitterモジュールの設定

「admin/config/services/twitter」にアクセスして、設定を行います。
設定ページには、「環境設定」、「TWITTER」、「投稿」があると思います。
※表示される設定ページの項目は、有効にしたサブモジュールにより異なります。
 

環境設定
OAuth Consumer Key TwitterアプリケーションのAPI Keyを入力
OAuth Consumer Secret TwitterアプリケーションのAPI Secretを入力

 

TWITTER

drupalにTwitterアカウントを登録して、drupalユーザとTwitterのユーザを紐づけします。
drupalサイトでそのユーザが投稿した記事が、ここで登録したTwitterのユーザのタイムラインに表示されます。
 

投稿

drupalにすでに作成してあるノードタイプごとに、「Twitterへの連携」を有効/無効に設定することができます。
なお、有効にした場合は、そのノードタイプごとにデフォルトの値を設定できるようになり、かつ、投稿ごとに連携するかどうかを選択できます。
今回は、ノードタイプ「blog」を有効にしました。
 

サードパティアプリケーションの連携

詳しい方法は、こちらを参照してください。
※先ほどのTWITTERの設定箇所で、認証作業を要求されるかと思います。

以上でdrupalとTwitterの連携ができている状態です。
 

TwitterとFacebookの連携

facebookと連携する方法は、すごく簡単です。
 

  1. facebookと連携させるTwitterアカウントでログイン
  2. Twitter設定メニューの【プロフィール】を選択
  3. 【Facebookにログインして自分のアカウントと連携する】 をクリック
  4. Facebookウォールに投稿されたツイートを見る人についてプライバシー設定を選択
  5. 【Facebookでログインする】 をクリックして、Facebookのログイン情報を入力
  6. 【許可】をクリックして承認


以上でTwitterとFacebookの連携ができている状態です。

 

TwitterとMixiの連携

mixiボイスと連携させる方法は、facebook同様にすごく簡単です。
 

  1. Twitterと連携させるmixiアカウントでログイン
  2. 【設定変更】をクリック
  3. 【つぶやきの公開範囲】をクリック
  4. 【Twitterと連携する】をクリック
  5. 【Allow】をクリック
  6. Twitter連携の項目が【公開しています】になっていればOK

以上でTwitterとmixiの連携ができている状態です。

このあと、実際にコンテンツタイプ「blog」で記事を投稿すれば、Twitter、Facebook、mixiにそれぞれ掲載されます。


Twitterへの投稿時に使用される文字列の設定をどうするかで少し迷っています。
さらに、Twitterモジュールで使用される、URL短縮サービスのTinyURLのままで良いかも思案中です。
外部URL短縮サービスは、どうしても文字列が長くなるURLを短縮するサービスで便利である一方、短縮されたURLは暗号のような文字列であるため、悪用されると危険なサイトへ飛ばされる可能性が考えられます。
このTinyURLの影響なのか、Twitter cardがうまく表示されないケースもあるようで・・・