クラウド環境で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
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
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.

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

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