ネクストエンジンAPIの使い方 基礎（開発環境構築編）

:::note alert
本記事に関するお問い合わせは受け付けておりません。
:::

## はじめに

[ネクストエンジン](http://next-engine.net/)ではAPIを公開しており、ご自身でアプリケーションを作成することが可能です。この記事はアプリを作ろうと思っているネクストエンジンユーザーを対象とした、アプリ作成の一連のフローを説明するものです。
この記事では開発環境の構築が主な目的です。本番環境に関してはご自身でサーバを用意するなどの対応をお願いします。

### ネクストエンジンについて

[ネクストエンジンとは](http://next-engine.net/%E3%83%8D%E3%82%AF%E3%82%B9%E3%83%88%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3%E3%81%A8%E3%81%AF%EF%BC%9F)、ネットショップのバックヤードを支えるサービスのこと。
導入社数No.1という実績があります（2014年8月時点）。
楽天やAmazon, Yahooといった多数のモールのネットショップを一元で管理できます。
2013年11月よりプラットフォーム化し、APIを公開しているので自由にアプリが作成可能です。

## この記事について

### 対象読者

* ネクストエンジンユーザー
* ECをやっていて業務を効率化したい人（ネクストエンジンのアカウントが必要になります）
* ネクストエンジンAPIを使ってアプリを作りたい人

### 手に入るもの

`Apache(HTTPS)` + `PHP` + ネクストエンジンAPIの`SDK`（`PHP`）が動く環境

### やること

ネクストエンジンAPIを使ってアプリを作る流れを説明します。
今回は開発環境構築編ということで`localhost`で`https`通信ができる状態を作り、`SDK`が正常に動作することを確認するところまでを行います。
ネクストエンジンには`PHP`と`Java`の`SDK`が用意されています。今回は`PHP`で作成していきます。`PHP`のサーバには`Apache`を使います。



## Windowsの場合
### ApacheとPHP（XAMPP）

* Windowsの場合には`PHP`と`Apache`の環境が入った`XAMPP`を使います
* 今回は`PHP5.4`を使用したので`XAMPP`は以下のバージョンを落としてきます（`XAMPP`のバージョンはお使いの環境によって異なります）
* XAMPP1.8.2 ( http://sourceforge.net/projects/xampp/files/XAMPP%20Windows/ )
* `xampp-win32-1.8.2-6-VC9-installer.exe`をダウンロード
* インストーラーに従ってインストールして下さい
* 途中で「どれをインストールするか」を聞かれるので`Apache`と`PHP`のみを選択し、他はチェックを外して下さい（データベース等使用する場合には適宜チェックを入れて下さい）
![キャプチャ1.PNG](https://qiita-image-store.s3.amazonaws.com/0/67471/0581da38-d4f2-ac14-9cd8-af2f3a1b1d9f.png)


* インストール後コントロールパネルから`Apache`を起動
![キャプチャ2.PNG](https://qiita-image-store.s3.amazonaws.com/0/67471/87e5e5d8-1ecf-a339-28a9-502df1c5885f.png)


* ブラウザのURL欄に`localhost`と入力し`XAMPP`の画面になれば成功
![キャプチャ3.PNG](https://qiita-image-store.s3.amazonaws.com/0/67471/e36c26ee-3843-f342-fabf-9798d0fc5bf8.png)


### ssl

* `https://localhost`と入力し閲覧を続行するを選択、先程同様の`XAMPP`の画面が表示されれば成功
* ローカルで試す分には証明書を自身で発行する必要はありません
![キャプチャ4.PNG](https://qiita-image-store.s3.amazonaws.com/0/67471/975d6967-601f-18aa-e66b-14dd38dcc9f7.png)


### PHP

* 先程の画面からご希望の言語を選択し管理画面へアクセスして下さい
* 左側のメニューの`PHP`の`phpinfo()`をクリック
* `PHP`の情報が表示されれば成功です
![キャプチャ6.PNG](https://qiita-image-store.s3.amazonaws.com/0/67471/efb130ef-fb70-7335-a399-0c54bc480014.png)



## Macの場合
### Apache
`Mac`には初めから`Apache`が入っているので、改めて`Apache`をインストールする必要はありません。`Apache`の起動は`sudo apachectl start`（パスワードを求められたらマシンのパスワードを入力して下さい）
`url`欄に`localhost`と入力してアクセスした時に`It works!`と画面に出れば成功です。
![スクリーンショット 2015-02-23 17.04.42.png](https://qiita-image-store.s3.amazonaws.com/0/67471/081c4e72-00ba-810b-1e3b-2c7e7b5c2181.png)



### ssl
このままでは`https`で繋ぐことができないので証明書を置きます。
以下の記事が大変参考になります。
http://www.karakaram.com/mac-apache-ssl
該当のコマンドで証明書を発行し、該当のディレクトリに配置して下さい。
`https://localhost`と入力し先程と同様に`It works!`と出れば成功です。
![スクリーンショット 2015-02-23 17.06.30.png](https://qiita-image-store.s3.amazonaws.com/0/67471/60e42ed9-b7ea-6dd3-af27-08e2b939f49d.png)
証明書を置いたあとは必ず`Apache`を再起動して下さい。
`sudo apachectl restart`


### PHP
以下の記事が大変参考になります。
http://www.adminweb.jp/apache/php/
`/Library/WebServer/Document/test.php`を作成し、`test.php`内に

```php:test.php
<?php
  phpinfo();
```

と記述、`https://localhost/test.php`にアクセスし`PHP`の情報が表示されれば成功
コードがそのまま出力されてしまう場合には設定が間違っているので上記記事を参考に修正して下さい。
![スクリーンショット 2015-02-26 18.31.33.png](https://qiita-image-store.s3.amazonaws.com/0/70505/c4dc1963-f465-a178-d1de-46216e7ac52d.png)



## SDKの入手
こちらから`SDK`をダウンロードして下さい（ http://api.next-e.jp/sdk.php ）


## クライアントIDとクライアントシークレットの取得

ネクストエンジン内でのアプリ作成の流れはマニュアルにも記載があります（ http://manual.next-e.jp/how_use/make/ ）
アプリ連携に必要な上記2つの値を発行します。
ネクストエンジンのトップ画面より ( https://base.next-engine.org/ )
左のタブから`「アプリを作る」->「メイン機能（テスト環境）アカウント発行」`（APIを使用したアプリを作る時には必須です）
`「アプリを作る」->「新しいアプリを作成」`
こちらからアプリの情報を入力していきます。
今回は

* `「アプリの種類選択」->「メイン機能と連携するアプリ」`
* `「販売形態選択」->「特定の企業に公開」`
* `「アプリ名」->「サンプルアプリ」`
* `「接続先メイン機能」->「ご自身の連携したいメイン機能をご選択下さい」`

としました。
以上の内容で「内容を保存」を押して下さい。
![スクリーンショット 2015-02-23 17.20.46.png](https://qiita-image-store.s3.amazonaws.com/0/67471/8abbdbe8-0476-94d3-68df-405232eaeccc.png)



アプリが作成できましたので次にAPIタブに移動し、クライアントIDとクライアントシークレットを発行します。
「テスト環境設定」の「Redirect URI」の欄に`https://localhost/ne_api_sdk_php/api_find.php`と入力し更新ボタンを押す。
するとクライアントIDとクライアントシークレットが発行されます。
![スクリーンショット 2015-02-26 18.35.38.png](https://qiita-image-store.s3.amazonaws.com/0/70505/d9cc554a-44b1-92a7-ee65-4895943ba601.png)


またこの画面でAPIの利用許可設定も行います。
今回の`SDK`と後のサンプルアプリで使用するため、以下のように設定をして下さい。
更新系のAPIを使用する場合には適宜許可を変更して下さい。
![スクリーンショット 2015-02-26 16.17.08.png](https://qiita-image-store.s3.amazonaws.com/0/70505/81b4a572-d714-19db-ccb7-5dc917b4acc1.png)



`SDK`内の`api_find.php`内の`CLIENT_ID`と`CLIENT_SECRET`に先程取得したものを入力
![スクリーンショット 2015-02-25 14.59.56.png](https://qiita-image-store.s3.amazonaws.com/0/67471/25c87b79-804d-08eb-91c4-a5035ccc313c.png)



## SDKの設置
上記の設定が完了し、`localhost`で`https`通信ができ`PHP`も動く状態ができたら、いよいよ`SDK`を設置します。
Windowsの場合は`C:¥xampp¥htdocs`
Macの場合は`/Library/WebServer/Documents`
に`SDK`を設置
`https://localhost/ne_api_sdk_php/api_find.php`にアクセスして情報が表示されれば成功です。
![スクリーンショット 2015-02-25 14.55.01.png](https://qiita-image-store.s3.amazonaws.com/0/67471/82dc0f67-b472-dae5-f035-89d31de929cb.png)

これでメイン機能からデータを取得する環境が整いました。


## エラーが出る人は

* 以下のエラーが出る方
![キャプチャ7.PNG](https://qiita-image-store.s3.amazonaws.com/0/67471/b08fe3a9-fe49-747f-9d8d-9190b671819a.png)

* 証明書関係のファイルの設定を追加すれば解決します。
http://curl.haxx.se/docs/caextract.html
上記のページから`cacert.pem`をダウンロードして下さい。
それを`SDK`の中に配置して下さい。
`php.ini`の最後の行に以下を追記（Windowsの場合、`C:¥xampp¥php`配下にあります）
![キャプチャ8.PNG](https://qiita-image-store.s3.amazonaws.com/0/67471/cb19d2e7-6f15-aeea-154a-cbeccd2ea92d.png)
※ 上記は`XAMPP`の該当ディレクトリを指定しているので、ご自身の環境に合ったパスを指定して下さい

上記設定後、`Apache`を再起動して再びアクセスしてメイン機能の情報が表示されれば成功です。
こちらの記事が参考になります（ http://qiita.com/iakio/items/71536dc5e615f03433a0 ）


## おわりに

環境さえ構築できてしまえばあとはガシガシ`PHP`を書いていくだけです。

次の記事（[アプリ実装編](http://qiita.com/hamee-dev/items/fd8b51eba26240b73bd4)）では

* 詳細なAPIの使い方
* サンプルアプリの作成
* コードの解説

等を行います。

## Developer Networkの紹介

ネクストエンジンには [Developer Network](https://developer.next-engine.com) (略してDevNet）という開発者向けコミュニティサイトがあります。
ここには [開発ガイド](https://developer.next-engine.com/guide) 、 [APIリファレンス](https://developer.next-engine.com/api) 、チュートリアルなど開発の役に立つ情報が盛りだくさんです。
また開発者同士でディスカッションする [コミュニティ](https://developer.next-engine.com/forum/active) もあります。
わからないことがあれば [こちら](https://developer.next-engine.com/forum/active) に質問を投稿してください。

ネクストエンジン Developer Networkwork
https://developer.next-engine.com/