携帯用ページ上における各種SNS連携方法まとめ

mixi (mixiチェック)

<form method="POST" action="http://m.mixi.jp/share.pl?guid=ON">
    <input type="hidden" name="charset" value="shift_jis もしくは utf-8 。デフォルトは shift_jis" />
    <input type="hidden" name="check_key" value="識別キー" />
    <input type="hidden" name="title" value="リンク先のタイトル (charset の文字エンコーディング)" />
    <input type="hidden" name="description" value="リンク先の説明文 (charset の文字エンコーディング)" />
    <input type="hidden" name="content_rating" value="19歳未満非対応の場合は 1" />
    <input type="hidden" name="image" value="サムネイル画像のURL" />
    <input type="hidden" name="primary_url" value="リンク先のURL (*1)" />
    <input type="hidden" name="pc_url" value="リンク先のURL(PC用)" />
    <input type="hidden" name="smartphone_url" value="リンク先のURL(スマートフォン用)" />
    <input type="hidden" name="mobile_url" value="リンク先のURL(携帯用) 携帯電話向け URL のいずれかは必須" />
    <input type="hidden" name="mobile_docomo_url" value="リンク先のURL(DoCoMo携帯用)" />
    <input type="hidden" name="mobile_au_url" value="リンク先のURL(au携帯用)" />
    <input type="hidden" name="mobile_softbank_url" value="リンク先のURL(SoftBank携帯用)" />
    <input type="submit" value="mixiチェック" />
</form>
<!-- (*1) primary_url は「チェックされた対象」を識別するために使われます。個別のチェックのうち、primary_url が同じものは同じ対象をチェックしたものとして扱われます。-->

mixi パートナーに登録して、mixi チェック用の識別キーを取得する必要がある。
詳細は http://developer.mixi.co.jp/connect/mixi_plugin/mixi_check/spec_mixi_check/
どのパラメータが必須でどのパラメータが省略可能かは↑を参照。

GREE (Social Feedback)

<?php
// PHP
$url = urlencode('リンク先のURL');
$button_type = 0; // 0-4 の値。
$button_size 16; // 16, 20, 22, 23, 32 のいずれか。
$button_src = 'リンクに使う画像のURL';
// 以上、全て必須パラメータ。
?>
<a href="http://m.gree.jp/?mode=share&act=write&url=<?=$url?>&button_type=<?=$button_type?>&button_size=<?=$button_size?>"><img src="<?=$button_src?>" /></a>

詳細は https://developer.gree.co.jp/connect/plugins/sf
リンクに使う画像は http://i.share.gree.jp/img/share/button/ 以下に用意されているが、全て PNG なので、携帯 (というか古い DoCoMo) で表示するには、 GIF に変換して自分のところにアップロードする必要がある。
さらに (なぜだか知らないが) GREE のページから $url へ遷移してくるとき、 & が &amp; に変換される。
http://example.com/foo?a=1&b=2 という URL を指定した場合は、 http://example.com/foo?a=1&b=2 という URL でアクセスされる。
PHP の arg_separator が &amp; でないと正常に $_GET に格納されないので注意。
私の場合、 arg_separator は & のままで、 $_SERVER['REQUEST_URI'] 中で &amp; があったら & に変換しつつ、自分で $_GET に代入して対処している。
button_type は 0-4 があるが、多分どれでもいい。 GREE 側でどれが一番使われてるか計測してるんだろう、きっと。

twitter (tweet)

<?php
// PHP
$url = urlencode('リンク先の URL');
$text = urlencode('リンク先の説明文 (UTF-8)');
$via = 'フォローさせたいアカウントその1'; // 省略可。
$related = 'フォローさせたいアカウントその2'; // 省略可。
?>
<a href="http://twtr.jp/share?guid=ON&url=<?=$url?>&text=<?=$text?>&via=<?=$via?>&related=<?=$related?>">つぶやく</a>

詳細は https://dev.twitter.com/docs/tweet-button
via と related は、つぶやいた後におすすめユーザとして表示される。 via を未だフォローしていなければ via が、そうでなければ related が、どちらもフォロー済であれば省略される。
なお、 twtr.jp を使っているユーザが、ポストされた URL へ遷移すると、 Google Wireless Transcoder で中継されてしまう。
これを解消するには、リンク先のページの 以下に

<link rel="alternate" media="handheld" href="携帯用URL" />

を入れておく。
参考: http://d.hatena.ne.jp/w6500/20110511

Facebook (Share)

<?php
// PHP
$url = urlencode('リンク先の URL');
$text = urlencode('リンク先の説明文 (UTF-8)');
?>
<a href="http://m.facebook.com/sharer.php?guid=ON&u=<?=$url?>&t=<?=$text?>">シェア</a>

どうやら古いインターフェースのようで、公式の詳細が見つからなかった。
ウォールに投稿される。