»
S
I
D
E
B
A
R
«
IISでForce.comのPHP Tool KitのSoapを動かす
12月 8th, 2009 by kwin

クラウド環境でCRMシステムを提供する Salseforce.com ではクラウドとの連携を行うためのPHPライブラリが提供されています。

ここで提供されているSOAPを利用したサンプルプログラムでは、IIS上で動作するPHPアプリケーションから Salseforce.com クラウド内の取引先責任者(Contact) を登録することができます。

以下、IIS上でサンプルアプリケーションを稼動させる手順を示します。

1. PHP を利用したサンプルプログラムをダウロードします。

ダウンロードサイト

http://wiki.developerforce.com/index.php/Self-Service_Portal_Toolkit_for_PHP_5

Download

Download

2.  ダウンロードしたファイルを展開し IISのアプリケーションに追加設定し、実行してみます。

例.   http:// xxxxxx/ssp-php5-0.9.1/samples/signup.php

2.1 このサンプルアプリケーションは php_soap.dll が必要となります。

下記のようなエラーが発生した場合、 php_soap.dll の設定を行います。

PHP Fatal error:  Class 'SoapClient' not found in C:xxxx\0work\ssp-php5-0.9.1\soapclient\SforceBaseClient.php on line 57

php.ini の編集および php_soap.dll を拡張フォルダに設置した後、IISを再起動します。

php_soap.dll

php_soap.dll

2.2  force.com との連携設定

/ssp-php5-0.9.1/samples/config.ini ファイルに force.com との連携用のユーザー名とバスワードを設定します。

 goldenUsername = "xxxx@xxxx.com"
 goldenPassword = "パスワード+セキュリティートークン"
 sspPassword = "A_SSP_Password"
 accountName = "IBM"
 sf_wsdl     = "partner.wsdl.xml"

この設定が正しくない場合、以下のようなエラーとなります。

There was a problem logging in as the golden user.
The SOAP error message was: INVALID_LOGIN: Invalid username, password, security token; or user locked out.
http://public.bay.livefilestore.com/y1pEsSoDg8JIrE3zvgo-uzzgFaKiKLeLoAdOznf5MqP0yp-ybUn270G93Ck5nDpRh4_Z33KHQzTiCTJojFNUhs52A/salseforce_php_sample_err.jpg

Invalid_Login_User

3. サンプルアプリケーションが起動し、実際にデータを登録してみます。

例.  http://xxxx/ssp-php5-0.9.1/samples/signup.php

- 以下のような表示で処理が停止されることがあります。

PHP Notice:  Undefined property: stdClass::$records in C:\xxx\ssp-php5-0.9.1\selfserviceuser\SelfServiceUserUtility.php on line 65
PHP Notice:  Trying to get property of non-object in C:\xxx\ssp-php5-0.9.1\selfserviceuser\SelfServiceUserUtility.php on line 65
PHP Warning:  DOMDocument::save(Users.xml) [<a href="domdocument.save">domdocument.save</a>]: failed to open stream: Permission denied in C:\apps\0work\ssp-php5-0.9.1\samples\XMLSecurityHandler.php on line 58

3行目の Warning は Users.xml への書き込み権限の不足が原因ですので、このファイルへの書き込み権限を付与します。

- IISの場合、 1,2行目の Notice の表示により、以後の

  header('Location: success.php');

による処理が実行されなくなります。
対応として php.ini の error_reporting の設定を変更し、IISを再起動します。

  error_reporting  =  E_ALL & ~E_NOTICE

*  IIS7.5(Windows7, Windows2008 Server R2)ではこの設定は必要ありません。
*  該当のフォルダ配下の web.config に設定で個別の php.ini を指定することができます。

例. <add name=”PHP via FastCGI” path=”*.php” verb=”*” modules=”FastCgiModule” scriptProcessor=”C:\php\php-cgi.exe|-c c:\php\php2.ini” resourceType=”Unspecified” />

ログインに成功すると以下のような画面が表示されます。

Login_Success

Login_Success

作成したユーザー情報は取引先責任者として force.com のサイトに登録されます。

contact

account

また同時に /ssp-php5-0.9.1/samples/Users.xml にユーザー情報が記録されます。

以上


Leave a Reply

You can trackback from your own site.
»  Substance: WordPress   »  Style: Ahren Ahimsa