LoginSignup
5
5

More than 5 years have passed since last update.

Croudiaで始めるAPI入門

Posted at

はじめまして。@hnle0です。

PHPとかPerlとかすらまともに書けない上にしばらくPHPばっかりやってる人です。

今回はikr氏の用意してくれたCroudia4PHPを使ってCroudiaのAPIをPHPから叩いてみよう!というお話。(えらい人任せだな)

MarkDownの練習も兼ねて…

Croudiaってなんぞや

■Croudiaとは
Croudiaは会員登録をすれば無料(一部有料)で使うことができるミニブログサービスです。従来のミニブログサービスと異なり、372文字の投稿文字数を確保している為、英文でもストレスの無い文章作成が可能となります。また、Croudiaは多彩なエンターテインメントコンテンツを配信するゲームプラットフォームでもありミニブログと連動したソーシャル性の高いコンテンツを提供します。
http://croudia.co.jp/NR20120406.html

CroudiaはTwitterのようなミニブログ…なのですが、最近はスプレッド(Twitterで言うRT)が「イイネ」になったり公式引用が「シェア」になったり某SNSを意識した方向転換を行っているようです。

Croudia公式のUIには今のところjQuery Mobileが使われているのですが…PCで見るには向いてないですね…やっぱりw
新UIへの刷新は秋ごろに発表されているのですが、執筆時点でまだ実装されていません。
-- 執筆中に本日リリースが発表されました。(12/29 14:15)


枕が長くなりましたが本題へ。

Croudia4PHP

  • Croudia4PHPは今年の夏に公開されたCroudia APIを叩くやつです。

とりあえず認証から取得、postまでやってみる。

以下の作業の前にCroudiaのアカウントを用意してください。

Croudia4PHPを展開、アップロード

Croudia4PHPをサーバーにうp。
ローカルでも無料レンタルホスティングでもレンサバでもVPSでもOK。とりあえずhttpsを叩くことのできるPHP
の使えるサーバーにcroudia4php.phpをうpします。
croudia4php.phpだけあれば問題ないです。

開発者トークンの取得

Croudia APIを使用するには 全てのエンドポイントにおいて OAuth認証が必要になります。 
まずはそのためのconsumer keyを取得します。

Croudia Developer Centerへアクセス。

https://developer.croudia.com/ にアクセスしてCroudiaのアカウントでログイン。

アプリケーション管理=>アプリケーション登録 の順にすすむ。

アプリケーション登録

  • アプリケーションの名称
  • アプリケーションの説明
  • 開発者名
  • リダイレクトURI

を入力してトークンを取得。なおリダイレクトURLはこの後用意するcallback.phpのパスを指定。

登録が出来るとConsumer keyとConsumer secretが発行されてますね。

config.phpを作る

別にこれはC4Pの仕様を考えると必要ないです。

今回はConsumer keyとConsumer tokenを config.php に書き込んでおきます。これをincludeしてるファイル全てに書くか、それともgithubにあるサンプルにあるようにSESSIONで渡しても問題ないです。

config.php
<?

$ck = "YOUR_CONSUMER_KEY";
$cs = "YOUR_CONSUMER_SECRET";

トークン認可ログインページへのURLを取得する

login.php
<?

require_once "croudia4php.php";
require_once "config.php";

//Croudia4PHPオブジェクトを生成します.
$c4p = new Croudia4PHP($ck,$cs);



//認証用のURLを取得します.
$url = $c4p -> getAuthorizeURL();

//認証ページへリダイレクト
header("Location: $url");

アクセストークンを取得する。

認証からのリダイレクトを受け取り、アクセストークンを取得します。

認証に必要なコードは $_GET["code"] に入ります。

callback.php
<?

//セッションの開始
session_start();

require_once "croudia4php.php";
require_once "config.php";

//code パラメータがあるかどうかをチェック
if (!isset($_GET["code"])){
    die("Error: No code");
}

//Croudia4PHPオブジェクトの生成
$c4p = new Croudia4PHP($ck,$cs);

//AccessTokenを取得してセット
$c4p -> getAccessToken($_GET["code"]);

//SESSIONに認証情報を保存
$_SESSION["c4p"] = serialize($c4p);


//とりあえずトークンを画面に吐いてみる。
var_dump($c4p);


これでとりあえずトークンが取得出来ました。なお このトークンは1時間のみ有効 なので注意。

タイムラインを取得する

タイムラインを取得します。主にCroudiaではPublic Timelineがメインで使われるので、それを最新のものから100件取得してみましょう。

$par でリクエストパラメーターを設定しています。 パラメーターは https://developer.croudia.com/docs/api10 を参照。

timeline.php
<?

//セッション開始
session_start();

//ライブラリinclude
require_once "croudia4php.php";

//$c4pオブジェクトを展開
$c4p = unserialize($_SESSION["c4p"]);

//パラメーターは配列で指定。
$par = (
   "count" => 100,
);

//APIを叩く。返り値はレスポンスをC4Pがjson_decodeして返してくれる。
$pub = $c4p -> GET_statuses_public_timeline ($par);

//とりあえずHTTPヘッダー
header("Content-type: text/html; charset=UTF-8");


//$pubは配列で返ってくるのでforeachで順番に吐いてみる。実際に使うときは配列チェックすること。
foreach($pub as $st){
   echo $st->user->name . " says : ".$st->text."<br>\n";
}

ささやく

ささやきを送信してみます。

postwhisper.php
<?

//セッション開始
session_start();

//ライブラリinclude
require_once "croudia4php.php";

//$c4pオブジェクトを展開
$c4p = unserialize($_SESSION["c4p"]);

//パラメーターは配列で指定。
$par = (
   "status" => "てすとささやき。",
);

//APIを叩く
$status = $c4p->POST_statuses_update($par);

//ささやいたstatusの詳細
echo "<pre>";
var_dump($status);

トークンのリフレッシュ

(執筆中)

c4p用意されていないエンドポイントを叩く

(執筆中)

画像をPOSTする

(執筆中)

ざっとこんな感じでCroudiaのPHPが簡単に使えるって話でした。TwitterやFacebook,Google+など、それぞれ仕様はバラバラしてるけど応用は効くはずですね。それぞれに用意されているライブラリがあれば丁度いいしなければほかのを参考に書けば…

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5