2014年7月29日火曜日

PHPによるセールスフォースAPI連携1(準備)

1.セールスフォース(Developer Edition)の準備

1.1.下記のサイトでセールスフォース(Developer Edition)の登録を行います。

https://developer.salesforce.com/





















 1.2. 「サインアップ」からページを開き、必要項目を入力し「サインアップ」を押します。








 1.3. 登録したメールアドレス宛てにメールが届きます。URLをクリックしてパスワード設定を行います。





 1.4. セールスフォースにログインします。

https://login.salesforce.com/























1.5. 必要に応じて携帯確認番号の登録を行います。
























1.6. セールスフォースにログインされます。






























2. セールスフォースへアクセスする外部サーバの準備

2.1. PHPがインストールされている外部サーバに SoapClien をインストールします。


# php -v
PHP 5.3.3 (cli) (built: Jul  3 2012 16:53:21)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
# php -m | grep soap
# yum install php-soap
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
base                                                                                                      | 3.7 kB     00:00
base/primary_db                                                                                           | 4.4 MB     00:03
extras                                                                                                    | 3.4 kB     00:00
extras/primary_db                                                                                         |  19 kB     00:00
updates                                                                                                   | 3.4 kB     00:00
updates/primary_db                                                                                        | 4.2 MB     00:03
vz-base                                                                                                   |  951 B     00:00
vz-base/primary                                                                                           | 1.3 kB     00:00
vz-base                                                                                                                      3/3
vz-updates                                                                                                |  951 B     00:00
vz-updates/primary                                                                                        | 2.2 kB     00:00
vz-updates                                                                                                                   8/8
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-soap.x86_64 0:5.3.3-27.el6_5 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.3-27.el6_5 for package: php-soap-5.3.3-27.el6_5.x86_64
--> Running transaction check
---> Package php-common.x86_64 0:5.3.3-14.el6_3 will be updated
--> Processing Dependency: php-common = 5.3.3-14.el6_3 for package: php-gd-5.3.3-14.el6_3.x86_64
--> Processing Dependency: php-common = 5.3.3-14.el6_3 for package: php-pdo-5.3.3-14.el6_3.x86_64
--> Processing Dependency: php-common = 5.3.3-14.el6_3 for package: php-5.3.3-14.el6_3.x86_64
--> Processing Dependency: php-common = 5.3.3-14.el6_3 for package: php-xml-5.3.3-14.el6_3.x86_64
--> Processing Dependency: php-common = 5.3.3-14.el6_3 for package: php-cli-5.3.3-14.el6_3.x86_64
---> Package php-common.x86_64 0:5.3.3-27.el6_5 will be an update
--> Running transaction check
---> Package php.x86_64 0:5.3.3-14.el6_3 will be updated
---> Package php.x86_64 0:5.3.3-27.el6_5 will be an update
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: php-5.3.3-27.el6_5.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: php-5.3.3-27.el6_5.x86_64
--> Processing Dependency: libcrypto.so.10(OPENSSL_1.0.1)(64bit) for package: php-5.3.3-27.el6_5.x86_64
---> Package php-cli.x86_64 0:5.3.3-14.el6_3 will be updated
---> Package php-cli.x86_64 0:5.3.3-27.el6_5 will be an update
---> Package php-gd.x86_64 0:5.3.3-14.el6_3 will be updated
---> Package php-gd.x86_64 0:5.3.3-27.el6_5 will be an update
--> Processing Dependency: libjpeg.so.62(LIBJPEG_6.2)(64bit) for package: php-gd-5.3.3-27.el6_5.x86_64
---> Package php-pdo.x86_64 0:5.3.3-14.el6_3 will be updated
---> Package php-pdo.x86_64 0:5.3.3-27.el6_5 will be an update
---> Package php-xml.x86_64 0:5.3.3-14.el6_3 will be updated
---> Package php-xml.x86_64 0:5.3.3-27.el6_5 will be an update
--> Running transaction check
---> Package libjpeg.x86_64 0:6b-46.el6 will be obsoleted
--> Processing Dependency: libjpeg = 6b-46.el6 for package: libjpeg-devel-6b-46.el6.x86_64
---> Package libjpeg-turbo.x86_64 0:1.2.1-3.el6_5 will be obsoleting
---> Package openssl.x86_64 0:1.0.0-20.el6_2.5 will be updated
--> Processing Dependency: openssl = 1.0.0-20.el6_2.5 for package: openssl-devel-1.0.0-20.el6_2.5.x86_64
---> Package openssl.x86_64 0:1.0.1e-16.el6_5.14 will be an update
--> Running transaction check
---> Package libjpeg-devel.x86_64 0:6b-46.el6 will be obsoleted
---> Package libjpeg-turbo-devel.x86_64 0:1.2.1-3.el6_5 will be obsoleting
---> Package openssl-devel.x86_64 0:1.0.0-20.el6_2.5 will be updated
---> Package openssl-devel.x86_64 0:1.0.1e-16.el6_5.14 will be an update
base/filelists_db                                                                                         | 5.9 MB     00:05
extras/filelists_db                                                                                       |  11 kB     00:00
updates/filelists_db                                                                                      | 2.5 MB     00:02
vz-base/filelists                                                                                         |  824 B     00:00
vz-updates/filelists                                                                                      | 3.0 kB     00:00
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================================
 Package                              Arch                    Version                             Repository                Size
=================================================================================================================================
Installing:
 libjpeg-turbo                        x86_64                  1.2.1-3.el6_5                       updates                  174 k
     replacing  libjpeg.x86_64 6b-46.el6
 libjpeg-turbo-devel                  x86_64                  1.2.1-3.el6_5                       updates                   96 k
     replacing  libjpeg-devel.x86_64 6b-46.el6
 php-soap                             x86_64                  5.3.3-27.el6_5                      updates                  140 k
Updating for dependencies:
 openssl                              x86_64                  1.0.1e-16.el6_5.14                  updates                  1.5 M
 openssl-devel                        x86_64                  1.0.1e-16.el6_5.14                  updates                  1.2 M
 php                                  x86_64                  5.3.3-27.el6_5                      updates                  1.1 M
 php-cli                              x86_64                  5.3.3-27.el6_5                      updates                  2.2 M
 php-common                           x86_64                  5.3.3-27.el6_5                      updates                  525 k
 php-gd                               x86_64                  5.3.3-27.el6_5                      updates                  107 k
 php-pdo                              x86_64                  5.3.3-27.el6_5                      updates                   75 k
 php-xml                              x86_64                  5.3.3-27.el6_5                      updates                  103 k

Transaction Summary
=================================================================================================================================
Install       3 Package(s)
Upgrade       8 Package(s)

Total download size: 7.2 M
Is this ok [y/N]: y
Downloading Packages:
(1/11): libjpeg-turbo-1.2.1-3.el6_5.x86_64.rpm                                                            | 174 kB     00:00
(2/11): libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64.rpm                                                      |  96 kB     00:00
(3/11): openssl-1.0.1e-16.el6_5.14.x86_64.rpm                                                             | 1.5 MB     00:01
(4/11): openssl-devel-1.0.1e-16.el6_5.14.x86_64.rpm                                                       | 1.2 MB     00:01
(5/11): php-5.3.3-27.el6_5.x86_64.rpm                                                                     | 1.1 MB     00:01
(6/11): php-cli-5.3.3-27.el6_5.x86_64.rpm                                                                 | 2.2 MB     00:01
(7/11): php-common-5.3.3-27.el6_5.x86_64.rpm                                                              | 525 kB     00:00
(8/11): php-gd-5.3.3-27.el6_5.x86_64.rpm                                                                  | 107 kB     00:00
(9/11): php-pdo-5.3.3-27.el6_5.x86_64.rpm                                                                 |  75 kB     00:00
(10/11): php-soap-5.3.3-27.el6_5.x86_64.rpm                                                               | 140 kB     00:00
(11/11): php-xml-5.3.3-27.el6_5.x86_64.rpm                                                                | 103 kB     00:00
---------------------------------------------------------------------------------------------------------------------------------
Total                                                                                            1.1 MB/s | 7.2 MB     00:06
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : php-common-5.3.3-27.el6_5.x86_64                                                                             1/21
  Updating   : openssl-1.0.1e-16.el6_5.14.x86_64                                                                            2/21
  Installing : libjpeg-turbo-1.2.1-3.el6_5.x86_64                                                                           3/21
  Updating   : php-cli-5.3.3-27.el6_5.x86_64                                                                                4/21
  Updating   : php-5.3.3-27.el6_5.x86_64                                                                                    5/21
  Updating   : php-gd-5.3.3-27.el6_5.x86_64                                                                                 6/21
  Installing : libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64                                                                     7/21
  Updating   : openssl-devel-1.0.1e-16.el6_5.14.x86_64                                                                      8/21
  Updating   : php-xml-5.3.3-27.el6_5.x86_64                                                                                9/21
  Updating   : php-pdo-5.3.3-27.el6_5.x86_64                                                                               10/21
  Installing : php-soap-5.3.3-27.el6_5.x86_64                                                                              11/21
  Cleanup    : php-5.3.3-14.el6_3.x86_64                                                                                   12/21
  Cleanup    : php-cli-5.3.3-14.el6_3.x86_64                                                                               13/21
  Cleanup    : php-gd-5.3.3-14.el6_3.x86_64                                                                                14/21
  Cleanup    : openssl-devel-1.0.0-20.el6_2.5.x86_64                                                                       15/21
  Erasing    : libjpeg-devel-6b-46.el6.x86_64                                                                              16/21
  Cleanup    : php-pdo-5.3.3-14.el6_3.x86_64                                                                               17/21
  Cleanup    : php-xml-5.3.3-14.el6_3.x86_64                                                                               18/21
  Cleanup    : php-common-5.3.3-14.el6_3.x86_64                                                                            19/21
  Erasing    : libjpeg-6b-46.el6.x86_64                                                                                    20/21
  Cleanup    : openssl-1.0.0-20.el6_2.5.x86_64                                                                             21/21
  Verifying  : php-xml-5.3.3-27.el6_5.x86_64                                                                                1/21
  Verifying  : php-cli-5.3.3-27.el6_5.x86_64                                                                                2/21
  Verifying  : php-5.3.3-27.el6_5.x86_64                                                                                    3/21
  Verifying  : php-gd-5.3.3-27.el6_5.x86_64                                                                                 4/21
  Verifying  : php-common-5.3.3-27.el6_5.x86_64                                                                             5/21
  Verifying  : php-pdo-5.3.3-27.el6_5.x86_64                                                                                6/21
  Verifying  : libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64                                                                     7/21
  Verifying  : openssl-devel-1.0.1e-16.el6_5.14.x86_64                                                                      8/21
  Verifying  : openssl-1.0.1e-16.el6_5.14.x86_64                                                                            9/21
  Verifying  : libjpeg-turbo-1.2.1-3.el6_5.x86_64                                                                          10/21
  Verifying  : php-soap-5.3.3-27.el6_5.x86_64                                                                              11/21
  Verifying  : php-common-5.3.3-14.el6_3.x86_64                                                                            12/21
  Verifying  : libjpeg-6b-46.el6.x86_64                                                                                    13/21
  Verifying  : openssl-devel-1.0.0-20.el6_2.5.x86_64                                                                       14/21
  Verifying  : php-xml-5.3.3-14.el6_3.x86_64                                                                               15/21
  Verifying  : openssl-1.0.0-20.el6_2.5.x86_64                                                                             16/21
  Verifying  : php-5.3.3-14.el6_3.x86_64                                                                                   17/21
  Verifying  : php-gd-5.3.3-14.el6_3.x86_64                                                                                18/21
  Verifying  : libjpeg-devel-6b-46.el6.x86_64                                                                              19/21
  Verifying  : php-cli-5.3.3-14.el6_3.x86_64                                                                               20/21
  Verifying  : php-pdo-5.3.3-14.el6_3.x86_64                                                                               21/21

Installed:
  libjpeg-turbo.x86_64 0:1.2.1-3.el6_5      libjpeg-turbo-devel.x86_64 0:1.2.1-3.el6_5      php-soap.x86_64 0:5.3.3-27.el6_5

Dependency Updated:
  openssl.x86_64 0:1.0.1e-16.el6_5.14       openssl-devel.x86_64 0:1.0.1e-16.el6_5.14       php.x86_64 0:5.3.3-27.el6_5
  php-cli.x86_64 0:5.3.3-27.el6_5           php-common.x86_64 0:5.3.3-27.el6_5              php-gd.x86_64 0:5.3.3-27.el6_5
  php-pdo.x86_64 0:5.3.3-27.el6_5           php-xml.x86_64 0:5.3.3-27.el6_5

Replaced:
  libjpeg.x86_64 0:6b-46.el6                                   libjpeg-devel.x86_64 0:6b-46.el6

Complete!
# /etc/init.d/httpd configtest
Syntax OK
# /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]


2.2.phpinfo.phpにSoapClienが追加されます。

















3. セールスフォースにアクセスするための設定を行います。

3.1. 下記のサイトから、PHPのライブラリをダウンロードします。

https://developer.salesforce.com/page/Force.com_Toolkit_for_PHP







3.2. ダウンロードした 「Force.com-Toolkit-for-PHP-master.zip」を解凍し、「soapclient」を外部サーバにアップロードします。



















3.3. WSDLファイルをセールスフォースからダウンロードします。

「設定」→「開発」「API」「パートナーWSDLの生成」「名前を付けてリンク先を保存」
 ファイル名:「partner.wsdl.xml」




































3.4. 外部サーバに「configs」ディレクトリを作成して、保存した「partner.wsdl.xml」を、その中にアップロードします。











3.5. セキュリティトークンを発行します。

「私の設定」→「個人用」→「私のセキュリティトークンのリセット」→「セキュリティトークンのリセット」を押します。



3.6. メールでユーザ名とセキュリティトークンが送られてきます。




















3.7. テスト用のPHPのプログラムを作成します。

index.php




















<?php

// Toolkitを読込みます。
require_once("./soapclient/SforcePartnerClient.php");

// 事前に必要な情報を宣言します。

// 今回は特定のセールスフォース組織に依存しないような場合に利用する
// Partner WSDL ファイルを利用します。
define("PARTNER_WSDL_FILE", "./configs/partner.wsdl.xml");

// セールスフォースへAPI接続する場合、接続元のIPアドレス許可が必要となりますが、
// 代替手段として、今回はセキュリティトークンを発行してIPアドレス許可の設定はスキップします。
define("SECURITY_TOKEN", "************************");

// API でログインするセールスフォースのアカウントです。
define("LOGIN_ID", "*******@***.**.**");

// パスワードの後ろにセキュリティトークンを付けます。
define("LOGIN_PASS", "**********" . SECURITY_TOKEN);


// 接続用クラスを生成します。
$sforce_connection = new SforcePartnerClient(); 
$soap_client = $sforce_connection->createConnection(PARTNER_WSDL_FILE, null);

echo "<pre>";

try {
    // セールスフォースへログインを実行します。
    $login = $sforce_connection->login(LOGIN_ID, LOGIN_PASS);
    var_dump($login);

} catch (Exception $e) {
    var_dump($e);
}

echo "</pre>";

?>


実行結果
下記のような登録情報が出力されます。

   

    ["organizationName"]=>
    string(51) "会社名"

    ["userEmail"]=>
    string(17) "Eメールアドレス"

    ["userFullName"]=>
    string(13) "氏名"

    ["userName"]=>
    string(17) "Eメールアドレス"

    ["userTimeZone"]=>
    string(10) "Asia/Tokyo"

    ["userType"]=>
    string(8) "Standard"

    ["userUiSkin"]=>
    string(6) "Theme3"

参考サイト
http://lab.tricorn.co.jp/kid/4196

0 件のコメント:

コメントを投稿