Dynamics CRM Online Fall ’13にPHPで接続してデータを取得する方法を紹介します。
(オンプレミス版のDynamics CRM 2013でも使えそうな気がしますが、未検証です)
ネットを検索するとDynamics CRM 2011の情報はかなりあるのですが、それが2013でも通用するのかわからないことや、そもそもPHPから接続する事例が少なく、かなり苦労しました(記事は短いですが、お察しください)。
(記事一覧はタグ:Dynamics CRM 2013にPHPで接続するを参照ください。)
大きな違いとして2011以前のサンプルはLiveIDで接続するコードになっていますがDynamics CRM Online Fall ’13はOffice 365アカウントでのログインになる点がことなりますので注意してください。
この認証の部分を書き換えてあげれば2011のコードもかなり流用が効くんじゃないかと思います。
Dynamics CRMについてはMVPの上本さんに色々教えていただきながら調査しました。この場をもちまして感謝の意をお伝えいたします。
(感謝ついでにこれまでのセッション資料とかどこかにまとめて公開してくれるとうれしいです!!)
PHPからのOffice 365認証についてはこのページが詳しいですが、日本から利用する場合いろいろと変更が必要になります。
dynamicsclient.phpの以下の行を変更します(日本語コメントは私が補足したものです)。
// Dynamics CRM Onlineにログインする際のメールアドレスを入力します $this->email = '<USERNAME>'; // Dynamics CRM Onlineにログインする際のパスワードを入力します $this->password = '<PASSWORD>'; // 上記ログインアカウントのユーザーが所属する組織を入力します $this->orgname = '<ORGNAME>';
orgnameはDynamics CRMのポータルからも確認できます。
(設定→開発者リソース)
リージョンを以下のように変更します。
// アジアからの接続はcrmapac $this->dynamicsRegion = 'crmapac';
接続先のドメインも上記「開発者リソース」ページやサイトのドメインを確認して書き換えましょう。
// crm5など数字が違う場合があります $this->dynamicsUrl = $this->orgname.'.api.crm5.dynamics.com';
これで動くはずですが、サンプルは担当者テーブルからIDを指定して一件取得するサンプルになっています。
しかし、Dynamics CRM Onlineのサイト上からは担当者のIDが確認できません(できる方法があるのかも・・・)。
次回以降はID以外でデータを取得する方法など試行錯誤した部分を紹介します。
Please give us your valuable comment