こんにちは。プラットフォーム開発本部の西岡です。
先月リリースを行いました、Yahoo! JAPANのソーシャル機能オープン化第一弾!!である、Social APIの利用方法についてご紹介したいと思います。
【Yahoo! JAPANのソーシャルとは】
昨年10月、Yahoo! JAPANのSNSサービスであるYahoo! Daysが、残念ながらサービス終了となってしまいました。
しかし、そこで作られた友だちつながりやプロフィール情報は、Yahoo!プロフィールに引き継がれ、Yahoo! JAPAN上のさまざまなサービスで現在も利用されています。
そして今回リリースされたSocial APIの第一弾では、以下4種類の機能を提供しています。
プロフィール情報の取得
- プロフィール情報の取得
- 友だち一覧の取得
- ひとことの取得/更新
- 近況の取得/更新/削除
※これらはすべてYahoo!プロフィールで管理されている情報です
【30分で試せるSocial API】
Social APIでは、認証にOAuthを使用していることもあり、OAuthを含めた複雑な手続きを代替してくれるSDKを用意しています。SDKを使えば、簡単にSocial APIを試せますので、早速使ってみましょう!
準備
まずはアプリケーションIDの登録です。
Social APIを利用するには、新しくアプリケーションIDを登録する必要があります。
- アプリケーションを登録する際のポイント
1. 開発するアプリケーションの選択では「認証を必要とするAPIを使ったアプリケーション」を選択 |
登録完了後、アプリケーションの詳細画面で、「Consumer Key」、「Consumer Secret」、「YAP ID」を確認しておきます。
アプリケーションの詳細は、管理画面からリンクされています。
次にSocial SDK for PHP(提供終了)をダウンロードして解凍、アプリケーションを動作させるサーバー上に配置します。SDKの詳細については、展開したアーカイブの「docs」ディレクトリ以下にドキュメントが用意されています。
以上で準備が整いました。
実行
例として、ひとことを投稿してみます。
下記サンプルを、アプリケーション登録時に指定した「サイトURL」以下に設置してください。
- 利用API
- ユーザーのひとこと更新
- ユーザーのひとこと取得
<?php
require("Yahoo.inc");
define('CONSUMER_KEY', ""); // Consumer Key (API Key) を指定
define('CONSUMER_SECRET', ""); // Consumer Secret を指定
define('YAP_ID', ""); // YAP ID を指定
$session = YahooSession::requireSession(CONSUMER_KEY,
CONSUMER_SECRET,
YAP_ID);
$user = $session->getSessionedUser();
// ログインユーザーのひとことを更新
$user->setStatus("こんにちは!!"); // UTF-8
// 更新直後なのでsetStatus()の反映を待ちます
sleep(1);
// ログインユーザーのひとことを取得
print_r($user->getStatus());
?>
いかがでしょうか。簡単ですよね。
ブラウザーでアクセスすると、OAuthの認証が始まり、同意するとログインしたIDでひとことが投稿されます。サンプルは固定値ですが、実際にアプリケーションとして出す場合は、ひとことをフォームで入力できるようにしたり、ログインしている人のプロフィール情報を表示したりと、いくつか手を加えると良いでしょう。
確認
そして、Social APIで投稿した「ひとこと」は、ひとことを扱っているYahoo! JAPANのサービス内でも表示されています。
Yahoo!メッセンジャー(Windows版メッセンジャー9.5.1以降)のステータス
なんとリアルタイム検索でも確認できます。
【応用もできるぞSocial API】
Social APIは、他APIと組み合わせることでより力を発揮します。
例えば震災関連情報のAPIと組み合わせると...
- 利用API
- ユーザーの友達
- 写真保存プロジェクト 写真検索API
<?php
require("Yahoo.inc");
define('CONSUMER_KEY', ""); // Consumer Key (API Key) を指定
define('CONSUMER_SECRET', ""); // Consumer Secret を指定
define('YAP_ID', ""); // YAP ID を指定
$session = YahooSession::requireSession(CONSUMER_KEY,
CONSUMER_SECRET,
YAP_ID);
$user = $session->getSessionedUser();
// 友だちを取得します
$start = 1;
$count = 20;
$total;
$friends = $user->getConnections($start, $count, $total);
if (is_array($friends)) {
$requestUrl = 'http://shinsai.yahooapis.jp/v1/Archive/search';
foreach($friends as $friend){
echo("<div>表示名: $friend->nickname</div>");
$query = array(
'appid' => CONSUMER_KEY,
'guid' => $friend->guid,
'output' => 'php',
);
// 友だちのIDを使って写真を検索
$response = $session->client->get($requestUrl, $query);
$body = unserialize($response['responseBody']);
$pictures = $body['ArchiveData']['Result'];
if (is_array($pictures)) {
echo('<div>');
foreach($pictures as $picture){
$pd = $picture['PhotoData'];
$imgUrl = $pd['ScreenUrl'];
$imgWidth = $pd['ScreenWidth'];
$imgHeight = $pd['ScreenHeight'];
echo("<img src='$imgUrl' height='$imgHeight' width='$imgWidth'>");
}
echo('</div>');
}
echo('<br />');
}
}
?>
1. OAuthログインしている人の友だちを取得 |
上記のような、Yahoo!のつながりを使ったソーシャルアプリが、わずか数十行で作れてしまいます。
他にもオークションのAPIと組み合わせると、こんなアプリも作れるはずです。
- 利用API
- ユーザーの近況
- マイ・オークション表示
1. マイオークション表示(ウォッチリスト・開催中のオークション)からオークション情報を取得 |
※「ひとこと」を使えば、言葉として、友だちやファン、そしてYahoo! JAPAN全体に伝わり、「近況」を使えば、アクティビティとして「自分の作成したアプリケーションを使っている人たち」という閉じた範囲で情報を伝えられます。
いかがでしょうか。
APIの組み合わせ次第で、Yahoo! JAPANのサービスではまだ実現されていない、新しい機能が生みだせるかもしれません。
こちらの記事のご感想を聞かせください。
- 学びがある
- わかりやすい
- 新しい視点
ご感想ありがとうございました