サイボウズLive データ APIをPHPとxAuthで使う

必要なもの

  • サイボウズLive DeveloperCenterにてアプリケーション登録をし、
    コンシューマーキーとコンシューマーシークレットを取得
  • twitteroauth
  • サイボウズLiveのログインアカウント(メールアドレス、パスワード)

配置

sample.php
cybozuliveoauth.php
twitteroauth/OAuth.php
             twitteroauth.php

プログラム

cybozuliveoauth.php

<?php
require_once "twitteroauth/twitteroauth.php";

/**
  * サイボウズLive用OAuthクラス
  */
class CybozuLiveOAuth extends TwitterOAuth {
     function accessTokenURL()  { return 'https://api.cybozulive.com/oauth/token'; }

     // 今回は使わないが念のため書き換えておく
     public $host = 'https://api.cybozulive.com/api/';
     public $format = '';
     public $useragent = 'CybozuLiveOAuth';
     function authenticateURL() { return 'https://api.cybozulive.com/oauth/authorize'; }
     function authorizeURL()    { return 'https://api.cybozulive.com/oauth/authorize'; }
     function requestTokenURL() { return 'https://api.cybozulive.com/oauth/initiate'; }

     // twitteroauthのOAuthRequestは3パラメータ必須なので$parametersを省略可能に
     function OAuthRequest($url, $method, $parameters = array()) {
         return parent::OAuthRequest($url, $method, $parameters);
     }
 }

sample.php

<?php
$consumer_key           = 'consumerkey';
$consumer_secret        = 'consumersecret';
$username               = 'user@example.jp';
$password               = 'zzzzzzzzzzzzzzz';

require_once 'cybozuliveoauth.php';

// アクセストークンの取得
$co = new CybozuLiveOAuth($consumer_key, $consumer_secret);
$co->getXAuthToken($username, $password);

// グループ情報の取得
$req = $co->OAuthRequest("https://api.cybozulive.com/api/group/V2", "GET");

// 成功すればAtomで返される
$xml = simplexml_load_string($req);
var_dump($xml);

実行

$php sample.php

object(SimpleXMLElement)#5 (5) {
  ["title"]=>
  string(19) "サイボウズLive"
  ["link"]=>
  object(SimpleXMLElement)#6 (1) {
    ["@attributes"]=>
    array(2) {
      ["rel"]=>
      string(9) "alternate"
      ["href"]=>
      string(23) "https://cybozulive.com/"
    }
  }
  ["author"]=>
  object(SimpleXMLElement)#7 (3) {
    ["name"]=>
    string(n) "xxxxxx"
    ["uri"]=>
    string(n) "x:xxxxxx"
    ["email"]=>
    string(n) "user@example.jp"
  }
  ["subtitle"]=>
  string(n) "yyyyyyyyyyyyyyyyyy"
  ["entry"]=>
  object(SimpleXMLElement)#8 (n) {
    ["title"]=>
    string(n) "zzzzzzzzzzzz"
    ["link"]=>
    array(n) {
      [0]=>
    :
    :
    :

参考

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中