37
44

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHP5からSalesforce REST APIを実行する (カスタムオブジェクトへレコードを追加する)

Last updated at Posted at 2016-09-05

はじめに

PHP5からSalesforce REST APIを呼び出して、SalesforceのForce.comカスタムオブジェクトにレコードを追加するサンプルプログラムについて記します。

また、Force.comカスタムオブジェクトに登録したレコード一覧を表示するサンプルプログラムも合わせて記します。

環境

SalesforceのDeveloper EditionにForce.comカスタムオブジェクトを作成して試しました。

PHPからSalesforce REST APIの呼び出しについては、AWSのEC2インスタンス(Amazon Linux)にPHP 5.3.29をインストールし、PHPのサンプルプログラムを作成して試しました。
EC2インスタンスは以下のAMIで作成しました。

・Amazon Linux AMI 2016.03.3 (HVM), SSD Volume Type - ami-374db956

PHPからSalesforce REST APIの呼び出しについては、Force.com-OAuth-Toolkit-for-PHPを使用させて頂きました。ありがとうございました。

事前準備

(1) https://login.salesforce.com/ へログインします。

(2) SalesforceにForce.comアプリケーション及びカスタムオブジェクトを作成します。

Salesforce Force.comアプリケーション及びカスタムオブジェクト作成手順は以下をご参照下さい。

今回の例として、カスタムオブジェクト作成時には、以下のカスタム項目を追加します。

カスタム項目名 API参照名 データ型
user_name create_date__c テキスト型
user_email user_email__c テキスト型
create_date create_date__c 日付型

(3) 作成したForce.comアプリケーションにOAuth2でアクセス出来るよう設定を開始します。

Salesforceコンソールの画面上の「設定」をクリックします。

WS000000.JPG

画面左側の「ビルド」->「作成」->「アプリケーション」をクリックします。
「接続アプリケーション」の「新規」をクリックします。

WS000002.JPG

(4) 作成したForce.comアプリケーションをOAuth2でアクセス出来るよう公開します。

以下を参考にしながら、Force.comアプリケーションのOAuth設定を行います。

今回の例では「接続アプリケーション名」を「testobject」としてアプリケーションを公開します。
「OAuth設定の有効化」にチェックをつけます。
以下の画面のように設定を入力して「保存」をクリックします。

WS000001.JPG

WS000003.JPG

WS000004.JPG

WS000005.JPG

(5) Force.comアプリケーションのOAuth2コンシューマキーとコンシューマシークレットを確認します。

前述の設定が完了すると「接続アプリケーション名 testobject」画面が表示されます。

前述の設定が完了すると、Force.comアプリケーションにOAuthでアクセス出来るようになり、Salesforce REST APIによりForce.comアプリケーションへ接続し、カスタムオブジェクトへのレコード追加といった操作が可能になります。

「接続アプリケーション名 testobject」画面では、後述の手順で使用するOAuth2コンシューマキーとコンシューマシークレットを確認します。

「コンシューマ鍵」がOAuthコンシューマキー、
「コンシューマの秘密」がOAuthコンシューマシークレットになります。

「コンシューマ鍵」のキー文字列を確認します。
「コンシューマの秘密」は「クリックして公開」をクリックしてシークレット文字列を確認します。

WS000006.JPG

(6) Force.comアプリケーションへのOAuthアクセスを許可するIPアドレスを指定します。

Force.comアプリケーションへOAuthアクセス可能なIPアドレスを制限する事が出来ます。
今回の例では「198.51.100.10」からのアクセスのみ許可するよう設定します。

「接続アプリケーション名 testobject」画面の下にある「OAuth Webサーバフローの信頼済み IP 範囲」の「新規」をクリックします。

WS000007.JPG

「アプリケーションバージョン 信頼済み IP 範囲の編集」画面が表示されます。
「開始IPアドレス」及び「終了IPアドレス」に「198.51.100.10」と入力して「保存」をクリックします。

WS000009.JPG

「接続アプリケーション名 testobject」画面が表示されるので「OAuth Webサーバフローの信頼済み IP 範囲」にアクセス許可を追加したIPアドレスが表示されている事を確認します。

WS000010.JPG

(7) Salesforce REST API接続用のSalesforceユーザアカウント・プロファイル・権限セットを作成します。

Salesforceコンソールの画面上の「設定」をクリックします。

画面左側の「管理」->「ユーザの管理」->「プロファイル」をクリックします。

WS000013.JPG

「プロファイルのコピー」画面が表示されます。
「既存のプロファイル」は「標準ユーザ」を選択します。
「プロファイル名」には「テストオブジェクトプロファイル」と入力して「保存」をクリックします。

WS000021.JPG

プロファイル「テストオブジェクトプロファイル」が作成されて、「プロファイル - テストオブジェクトプロファイル」画面が表示されます。「編集」をクリックします。

WS000015.JPG

「プロファイル編集 - テストオブジェクトプロファイル」画面が表示されます。
「カスタムアプリケーション設定」の「テストオブジェクト」の「参照可能」にチェックをつけます。

WS000016.JPG

「接続アプリケーション」->「testobject」にチェックをつけます。

WS000017.JPG

「タブの設定」->「カスタムタブの設定」->「テストオブジェクト」->「デフォルトで表示」を選択します。

WS000018.JPG

「システム管理者権限」->「API の有効化」にチェックをつけます。

WS000019.JPG

「カスタムオブジェクト権限」->「テストオブジェクト」について、「基本アクセス」の「参照」「作成」「編集」「削除」チェックボックスにチェックをつける。

WS000020.JPG

「保存」をクリックしてプロファイルを作成します。
プロファイル「テストオブジェクトプロファイル」が作成されます。

WS000022.JPG

「設定」->「管理」->「ユーザの管理」->「権限セット」をクリックします。
カスタムオブジェクトを作成すると、自動的に権限セットが作成されます。
ここでは「テストオブジェクト 開発者」という権限セットが作成されている事を確認します。
「テストオブジェクト 開発者」をクリックします。

WS000023.JPG

「権限セット - テストオブジェクト 開発者」画面が表示されます。
「システム権限」をクリックします。

WS000024.JPG

WS000025.JPG

「権限セット - テストオブジェクト 開発者」画面が表示されます。
「編集」をクリックします。

「API の有効化」にチェックをつけます。
「保存」をクリックします。

WS000026.JPG

WS000027.JPG

「設定」->「管理」->「ユーザの管理」->「ユーザ」をクリックします。
「すべてのユーザ」画面が表示されます。「新規ユーザ」をクリックします。

WS000012.JPG

「新規ユーザ」画面が表示されます。
Salesforce REST API接続時に使用するSalesforce REST API接続用ユーザアカウントを作成します。
今回の例では、以下のユーザ名でSalesforceユーザを作成します。

ユーザ名
example_salesforce_api_user@hoge.example.com

「ライセンス」は「Salesforce」を選択します。
「プロファイル」は前述の手順で作成した「テストオブジェクトプロファイル」を選択します。

WS000028.JPG

「保存 & 新規」をクリックします。
Salesforceユーザ「example_salesforce_api_user」が作成されます。

「設定」->「管理」->「ユーザの管理」->「ユーザ」->「example_salesforce_api_user」をクリックします。

「ユーザ - example_salesforce_api_user」画面が表示されます。

WS000031.JPG

「権限セットの割り当て」をクリックします。
「権限セットの割り当て」で「割り当ての編集」をクリックします。

「利用可能な権限セット」の「テストオブジェクト 開発者」を追加して「保存」をクリックします。

「権限セットの割り当て」に「テストオブジェクト 開発者」が追加された事を確認します。

WS000030.JPG

(8) プロファイルでForce.comアプリケーションへの通信を許可するIPアドレスを指定します。

前述の手順で作成したプロファイル「テストオブジェクトプロファイル」でもForce.comアプリケーションへの接続を許可するIPアドレスを指定します。

「設定」->「管理」->「ユーザの管理」->「プロファイル」の「テストオブジェクトプロファイル」をクリックします。

スクリーンショット 2017-03-11 11.22.52.png

「テストオブジェクトプロファイル」画面が表示されるので「ログイン IP アドレスの制限」をクリックします。

スクリーンショット 2017-03-11 11.23.52.png

「ログイン IP アドレスの制限」の「新規」をクリックします。

スクリーンショット 2017-03-11 11.25.15.png

「ログイン IP アドレスの制限」画面が表示されます。
「開始IPアドレス」及び「終了IPアドレス」に「198.51.100.10」と入力して「保存」をクリックします。

スクリーンショット 2017-03-11 11.27.47.png

「テストオブジェクトプロファイル」画面が表示されるので「ログイン IP アドレスの制限」にアクセス許可を追加したIPアドレスが表示されている事を確認します。

スクリーンショット 2017-03-11 11.31.22.png スクリーンショット 2017-03-11 11.32.08.png

(9) AWSにEC2インスタンス(Amazon Linux)を作成し、PHP5.3をインストールします。

AWSにEC2インスタンス(Amazon Linux)を作成し、ec2-userでsshログインします。
PHP5.3やgit等をインストールします。

# sed -i -e "s/HOSTNAME=localhost.localdomain/HOSTNAME=salesforce-api-test/g" /etc/sysconfig/network
# yum -y update
# yum -y install git
# yum -y install php

タイムゾーンを設定します。

# cp /usr/share/zoneinfo/Japan /etc/localtime

# vi /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=true
#

インストールしたPHPバージョンを確認します。

# uname -a
Linux ip-172-31-3-217 4.4.11-23.53.amzn1.x86_64 #1 SMP Wed Jun 1 22:22:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
#

# php -v
PHP 5.3.29 (cli) (built: May 12 2015 22:42:19)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
#

一度EC2インスタンスを再起動します。起動してきたら、再度EC2インスタンスにsshログインします。

# reboot

.bashrcにSalesforce REST API接続用の設定を追加します。

[ec2-user@salesforce-api-test ~]$ vi /home/ec2-user/.bashrc
 (末尾に以下を追加する)

### Sandbox環境へ接続する場合のAPIエンドポイント
##export DATABASEDOTCOM_HOST="test.salesforce.com"
### 本番環境へ接続する場合のAPIエンドポイント
export DATABASEDOTCOM_HOST="login.salesforce.com"

export DATABASEDOTCOM_CLIENT_ID="前述の「コンシューマ鍵」(OAuthコンシューマキー)を記載します。"
export DATABASEDOTCOM_CLIENT_SECRET="前述の「コンシューマの秘密」(OAuthコンシューマシークレット)を記載します。"
export DATABASEDOTCOM_CLIENT_USERNAME="APIを有効化しているSalesforceユーザアカウント名を記載します。"
export DATABASEDOTCOM_CLIENT_AUTHENTICATE_PASSWORD="APIを有効化しているSalesforceユーザアカウントのパスワードを記載します。"

以下は.bashrcに設定を追加した後の例です。

[ec2-user@salesforce-api-test ~]$ cat /home/ec2-user/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
### Sandbox環境へ接続する場合のAPIエンドポイント
##export DATABASEDOTCOM_HOST="test.salesforce.com"
### 本番環境へ接続する場合のAPIエンドポイント
export DATABASEDOTCOM_HOST="login.salesforce.com"
export DATABASEDOTCOM_CLIENT_ID="3**************************************************************F"
export DATABASEDOTCOM_CLIENT_SECRET="1********************4"
export DATABASEDOTCOM_CLIENT_USERNAME="example_salesforce_api_user@hoge.example.com"
export DATABASEDOTCOM_CLIENT_AUTHENTICATE_PASSWORD="*************"
[ec2-user@salesforce-api-test ~]$

.bashrcに設定した環境変数を読み込みます。

[ec2-user@salesforce-api-test ~]$ source /home/ec2-user/.bashrc
[ec2-user@salesforce-api-test ~]$

Force.com-OAuth-Toolkit-for-PHP.gitをcloneします。

[ec2-user@salesforce-api-test ~]$ git clone https://github.com/nkjm/Force.com-OAuth-Toolkit-for-PHP.git

[ec2-user@salesforce-api-test ~]$ ls -lrta /home/ec2-user/Force.com-OAuth-Toolkit-for-PHP/oauth.php
-rw-rw-r-- 1 ec2-user ec2-user 8472 Sep  6 02:28 /home/ec2-user/Force.com-OAuth-Toolkit-for-PHP/oauth.php
[ec2-user@salesforce-api-test ~]$

Force.com-OAuth-Toolkit-for-PHPのセッション格納ディレクトリを作成します。

[ec2-user@salesforce-api-test ~]$ mkdir -p /home/ec2-user/tmp/session
[ec2-user@salesforce-api-test ~]$

PHPのタイムゾーンを設定します。

[root@salesforce-api-test ~]# echo "date.timezone = \"Asia/Tokyo\"" >> /etc/php.ini

[root@salesforce-api-test ~]# grep date.timezone /etc/php.ini | grep -v "^;"
date.timezone = "Asia/Tokyo"
[root@salesforce-api-test ~]#

(10) EC2インスタンスにOpenSSL 1.0.1以上がインストールされている事を確認します。

Salesforce REST APIはTLS 1.0の段階的な無効化を開始しています。
https://help.salesforce.com/apex/HTViewSolution?id=000221207&language=ja

Salesforce REST APIを呼び出すインスタンスには、TLS 1.1をサポートしているOpenSSL 1.0.1以上がインストールされている必要があります。

Amazon LinuxのEC2インスタンスの場合、前述の手順でyum updateを実行すると、OpenSSL 1.0.1がインストールされます。念の為、OpenSSL 1.0.1がインストールされている事を確認します。

[ec2-user@salesforce-api-test ~]$ rpm -qa | grep openssl
openssl-1.0.1k-15.93.amzn1.x86_64
[ec2-user@salesforce-api-test ~]$

PHPからSalesforce REST APIでカスタムオブジェクトにレコードを追加する

(11) Force.comカスタムオブジェクトにレコードを追加するプログラムを作成します。

Force.comカスタムオブジェク「テストオブジェクト」(例としてオブジェクト名が QuickStart__c であるとします)にレコードを追加するPHPプログラムを作成します。
これを実行すると、カスタムオブジェクトにレコードを追加出来ます。

[ec2-user@salesforce-api-test ~]$ vi /home/ec2-user/insert_salesforce_api_test.php
insert_salesforce_api_test.php
<?php

date_default_timezone_set('Asia/Tokyo');

require_once("/home/ec2-user/Force.com-OAuth-Toolkit-for-PHP/oauth.php");

///// Salesforce REST API接続用の環境変数を.bashrcから取得する
// Salesforce REST APIで接続するアプリケーションの「コンシューマ鍵」
$DATABASEDOTCOM_CLIENT_ID = getenv('DATABASEDOTCOM_CLIENT_ID');

// Salesforce REST APIで接続するアプリケーションの「コンシューマの秘密」を.bashrcから取得する
$DATABASEDOTCOM_CLIENT_SECRET = getenv('DATABASEDOTCOM_CLIENT_SECRET');

// Salesforce REST API接続用のSalesforceユーザ(Salesforceログインに使用しているEメールアドレスを設定)を.bashrcから取得する
$DATABASEDOTCOM_CLIENT_USERNAME = getenv('DATABASEDOTCOM_CLIENT_USERNAME');

// Salesforce REST API接続用のSalesforceユーザのパスワードを.bashrcから取得する
$DATABASEDOTCOM_CLIENT_AUTHENTICATE_PASSWORD = getenv('DATABASEDOTCOM_CLIENT_AUTHENTICATE_PASSWORD');

// Salesforce REST APIエンドポイントを.bashrcから取得する
$DATABASEDOTCOM_HOST = getenv('DATABASEDOTCOM_HOST');
$LOGIN_URL = "https://" . $DATABASEDOTCOM_HOST . "/";

///// Salesforce REST API接続用の設定
$CACHE_DIR = '/home/ec2-user/tmp/session';
$CALLBACK_URL = 'https://198.51.100.10/';

/////
// Salesforce REST API接続用のOauthインスタンスを生成
$oauth = new oauth( $DATABASEDOTCOM_CLIENT_ID, $DATABASEDOTCOM_CLIENT_SECRET, $CALLBACK_URL, $LOGIN_URL, $CACHE_DIR);

// Salesforce REST API接続にあたりSalesforceへの認証を実行
$oauth->auth_with_password( $DATABASEDOTCOM_CLIENT_USERNAME, $DATABASEDOTCOM_CLIENT_AUTHENTICATE_PASSWORD );

var_dump( $oauth->instance_url );

// Salesforce REST APIでカスタムオブジェクトへ追加するレコード
$today = date("Y-m-d");
$insert_time = date("Ymd_His");

$insert_name = "testname_" . $insert_time;
$insert_email = $insert_name . "@hoge.example.com";
$insert_record = array(
    'user_name__c' => $insert_name,
    'user_email__c' => $insert_email,
    'create_date__c' => $today
);

$insert_record_json = json_encode($insert_record);
$insert_record_json = preg_replace('/\\\\\//', '/', $insert_record_json);
echo $insert_record_json . "\n";

$url = $oauth->instance_url . "/services/data/v20.0/sobjects/QuickStart__c";
$curl = curl_init($url);

curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $insert_record_json);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json;charset=UTF-8', "Authorization: OAuth " . $oauth->access_token));

$response = json_decode(curl_exec($curl), true);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
var_dump($url);

// insert成功時は201が返ってくるので、201以外はエラーと判定
if ( $status != 201 ) {
    print("Salesforce REST API Access Failed  StatusCode =[" . $status . "]\n");
} else {
    print("Salesforce REST API Access Success StatusCode =[" . $status . "]\n");
}

var_dump( $response );

curl_close($curl);

$oauth->auth_with_refresh_token();

?>

PHPプログラムを実行すると、Force.comカスタムオブジェクトにレコードを追加出来ます。

[ec2-user@salesforce-api-test ~]$ pwd
/home/ec2-user
[ec2-user@salesforce-api-test ~]$ php /home/ec2-user/insert_salesforce_api_test.php
string(26) "https://ap2.salesforce.com"
{"user_name__c":"testname_20160907_014059","user_email__c":"testname_20160907_014059@hoge.example.com","create_date__c":"2016-09-07"}
string(69) "https://ap2.salesforce.com/services/data/v20.0/sobjects/QuickStart__c"
SalesForce REST API Access Success StatusCode =[201]
array(3) {
  ["id"]=>
  string(18) "a032800000G8dC0AAJ"
  ["success"]=>
  bool(true)
  ["errors"]=>
  array(0) {
  }
}
[ec2-user@salesforce-api-test ~]$

PHPからSalesforce REST APIでカスタムオブジェクトに追加したレコード一覧を表示する

(12) Force.comカスタムオブジェクトに追加したレコードを表示するプログラムを作成します。

Force.comカスタムオブジェク「テストオブジェクト」(例としてオブジェクト名が  QuickStart__c であるとします)のレコードを表示するPHPプログラムを作成します。
これを実行すると、カスタムオブジェクトに追加されたレコードを表示出来ます。

[ec2-user@salesforce-api-test ~]$ vi /home/ec2-user/select_salesforce_api_test.php
select_salesforce_api_test.php
<?php

require_once("/home/ec2-user/Force.com-OAuth-Toolkit-for-PHP/oauth.php");

///// Salesforce REST API接続用の環境変数を.bashrcから取得する
// Salesforce REST APIで接続するアプリケーションの「コンシューマ鍵」
$DATABASEDOTCOM_CLIENT_ID = getenv('DATABASEDOTCOM_CLIENT_ID');

// Salesforce REST APIで接続するアプリケーションの「コンシューマの秘密」を.bashrcから取得する
$DATABASEDOTCOM_CLIENT_SECRET = getenv('DATABASEDOTCOM_CLIENT_SECRET');

// Salesforce REST API接続用のSalesforceユーザ(Salesforceログインに使用しているEメールアドレスを設定)を.bashrcから取得する
$DATABASEDOTCOM_CLIENT_USERNAME = getenv('DATABASEDOTCOM_CLIENT_USERNAME');

// Salesforce REST API接続用のSalesforceユーザのパスワードを.bashrcから取得する
$DATABASEDOTCOM_CLIENT_AUTHENTICATE_PASSWORD = getenv('DATABASEDOTCOM_CLIENT_AUTHENTICATE_PASSWORD');

// Salesforce REST APIエンドポイントを.bashrcから取得する
$DATABASEDOTCOM_HOST = getenv('DATABASEDOTCOM_HOST');
$LOGIN_URL = "https://" . $DATABASEDOTCOM_HOST . "/";

///// Salesforce REST API接続用の設定
$CACHE_DIR = '/home/ec2-user/tmp/session';
$CALLBACK_URL = 'https://198.51.100.10/';

/////
// Salesforce REST API接続用のOauthインスタンスを生成
$oauth = new oauth( $DATABASEDOTCOM_CLIENT_ID, $DATABASEDOTCOM_CLIENT_SECRET, $CALLBACK_URL, $LOGIN_URL, $CACHE_DIR);

// Salesforce REST API接続にあたりSalesforceへの認証を実行
$oauth->auth_with_password( $DATABASEDOTCOM_CLIENT_USERNAME, $DATABASEDOTCOM_CLIENT_AUTHENTICATE_PASSWORD );

//var_dump( $oauth->instance_url );
//var_dump( $oauth->access_token );
//var_dump( $oauth->refresh_token );

// Salesforce REST APIパラメータに指定するSOQLを定義
$query = "SELECT user_name__c, user_email__c, create_date__c FROM QuickStart__c";

// Salesforce REST APIを実行する
$url = $oauth->instance_url . "/services/data/v24.0/query?q=" . urlencode($query);
$curl = curl_init($url);
var_dump($url);

curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Authorization: OAuth " . $oauth->access_token));

// Salesforce REST API実行結果を保存
$response = json_decode(curl_exec($curl), true);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);

if ( $status != 200 ) {
    print("Salesforce REST API Access Failed  StatusCode =[" . $status . "]\n");
} else {
    print("Salesforce REST API Access Success StatusCode =[" . $status . "]\n");
}

var_dump( $response );

curl_close($curl);

$oauth->auth_with_refresh_token();

?>

このプログラムを実行すると、Force.comカスタムオブジェクトのレコード一覧を表示出来ます。

[ec2-user@salesforce-api-test ~]$ php /home/ec2-user/select_salesforce_api_test.php
string(128) "https://ap2.salesforce.com/services/data/v24.0/query?q=SELECT+user_name__c%2C+user_email__c%2C+create_date__c+FROM+QuickStart__c"
SalesForce REST API Access Success StatusCode =[200]
array(3) {
  ["totalSize"]=>
  int(15)
  ["done"]=>
  bool(true)
  ["records"]=>
  array(15) {
    [0]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000FlloBAAR"
      }
      ["user_name__c"]=>
      string(15) "テスト太郎"
      ["user_email__c"]=>
      string(22) "test.tarou@example.com"
      ["create_date__c"]=>
      NULL
    }
    [1]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000FlloVAAR"
      }
      ["user_name__c"]=>
      string(15) "テスト次郎"
      ["user_email__c"]=>
      string(22) "test.jirou@example.com"
      ["create_date__c"]=>
      NULL
    }
    [2]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G8d8SAAR"
      }
      ["user_name__c"]=>
      string(24) "testname_20160907_013814"
      ["user_email__c"]=>
      string(41) "testname_20160907_013814@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-07"
    }
    [3]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G8d7yAAB"
      }
      ["user_name__c"]=>
      string(24) "testname_20160907_013750"
      ["user_email__c"]=>
      string(41) "testname_20160907_013750@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-07"
    }
    [4]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G8d9pAAB"
      }
      ["user_name__c"]=>
      string(24) "testname_20160907_013850"
      ["user_email__c"]=>
      string(41) "testname_20160907_013850@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-07"
    }
    [5]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G8d0EAAR"
      }
      ["user_name__c"]=>
      string(24) "testname_20160907_013037"
      ["user_email__c"]=>
      string(41) "testname_20160907_013037@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-07"
    }
    [6]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G8dAiAAJ"
      }
      ["user_name__c"]=>
      string(24) "testname_20160907_013909"
      ["user_email__c"]=>
      string(41) "testname_20160907_013909@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-07"
    }
    [7]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G8dC0AAJ"
      }
      ["user_name__c"]=>
      string(24) "testname_20160907_014059"
      ["user_email__c"]=>
      string(41) "testname_20160907_014059@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-07"
    }
    [8]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G8dCFAAZ"
      }
      ["user_name__c"]=>
      string(24) "testname_20160907_014210"
      ["user_email__c"]=>
      string(41) "testname_20160907_014210@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-07"
    }
    [9]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G7wcGAAR"
      }
      ["user_name__c"]=>
      string(24) "testname_20160906_042408"
      ["user_email__c"]=>
      string(41) "testname_20160906_042408@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-06"
    }
    [10]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G7wcQAAR"
      }
      ["user_name__c"]=>
      string(24) "testname_20160906_042527"
      ["user_email__c"]=>
      string(41) "testname_20160906_042527@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-06"
    }
    [11]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G7wcuAAB"
      }
      ["user_name__c"]=>
      string(24) "testname_20160906_043918"
      ["user_email__c"]=>
      string(41) "testname_20160906_043918@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-06"
    }
    [12]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G7wcBAAR"
      }
      ["user_name__c"]=>
      string(24) "testname_20160906_042126"
      ["user_email__c"]=>
      string(41) "testname_20160906_042126@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-06"
    }
    [13]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G7wdEAAR"
      }
      ["user_name__c"]=>
      string(24) "testname_20160906_044112"
      ["user_email__c"]=>
      string(41) "testname_20160906_044112@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-06"
    }
    [14]=>
    array(4) {
      ["attributes"]=>
      array(2) {
        ["type"]=>
        string(13) "QuickStart__c"
        ["url"]=>
        string(62) "/services/data/v24.0/sobjects/QuickStart__c/a032800000G7wcLAAR"
      }
      ["user_name__c"]=>
      string(24) "testname_20160906_042515"
      ["user_email__c"]=>
      string(41) "testname_20160906_042515@hoge.example.com"
      ["create_date__c"]=>
      string(10) "2016-09-06"
    }
  }
}
[ec2-user@salesforce-api-test ~]$

備考

以下のコマンドを実行すると、PHPクライアントからSalesforce REST APIへのネットワーク層での通信が正常な場合、SalesforceからAPIアクセストークンを取得出来ます。
Salesforceへの手軽な疎通確認に利用出来ます。

[ec2-user@salesforce-api-test ~]$ curl https://$DATABASEDOTCOM_HOST/services/oauth2/token -d "grant_type=password" -d "client_id=$DATABASEDOTCOM_CLIENT_ID" -d "client_secret=$DATABASEDOTCOM_CLIENT_SECRET" -d "username=$DATABASEDOTCOM_CLIENT_USERNAME" -d "password=$DATABASEDOTCOM_CLIENT_AUTHENTICATE_PASSWORD"
{"access_token":"00D******************************************wzij","instance_url":"https://ap2.salesforce.com","id":"https://login.salesforce.com/id/********************:/*******************","token_type":"Bearer","issued_at":"1473101261652","signature":"J28rR************************:"}[ec2-user@salesforce-api-test ~]$
[ec2-user@salesforce-api-test ~]$

以上になります。

37
44
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
44

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?