JS SDK Guide
¶ はじめに
Uber JS SDK を利用すると、Uber Direct API と Organization API のアプリケーションへの組み込みが簡単になります。このガイドでは、JS SDK の設定と初回の API 呼び出しの実行方法について説明します。これは JavaScript と Node.js に精通していること、Node.js と npm のインストールが完了していることを前提としています。
¶ 要件
¶ Uber Direct アカウント
Uber Direct 開発者アカウントを作成するには、Get Started セクション に移動し、表示される手順に従って進みます。既にアカウントを持っている場合は、サインインするとダッシュボードの [開発者] タブでキーを見つけることができます。
各 API にアクセスするには、アプリに以下のスコープが必要です。
- DaaS API:
eats.deliveries
- Organizations API:
direct.organizations
アクセストークンをリクエストする際に、これらのスコープを渡す必要があります(以下の Authentication を参照)。
¶ Node
このパッケージはバージョン 18 以上の Node に対応しています。Mac では brew
を使ってインストールできます。
brew install node@18
Windows では nvm-windows を確認してください。
Node のダウンロードについての詳細は、こちらの リンク をご覧ください。
¶ インストール
Uber JS SDK をインストールするには次のコマンドを実行します。
npm install uber-direct
¶ 環境変数を設定する
Uber Direct JS SDK を使用するには、クライアント ID とクライアントシークレットで認証を行う必要があります。API 呼び出しを実行するにはカスタマートークンも必要です。これらを環境変数として設定します。
export UBER_DIRECT_CLIENT_ID=your_client_id
export UBER_DIRECT_CLIENT_SECRET=your_client_secret
export UBER_DIRECT_CUSTOMER_ID=your_customer_token
¶ 認証
Uber API で認証を行うには、環境変数ファイルに設定したクライアント ID とクライアントシークレットを使用してアクセストークンを取得します。以下はその手順の一例です。
import { getAccessToken } from "uber-direct/auth";
getAccessToken()
.then((token) => console.log(`Your access token is: ${token}`))
.catch((error) =>
console.error(`Error fetching access token: ${error.message}`)
);
¶ API 呼び出しを実行する
Uber JS SDK を使用して API 呼び出しを実行する手順の例を以下に示します。
その他の例については Github サンプルリポジトリ を参照してください。
¶ 配達見積を取得する
import { getAccessToken } from 'uber-direct/auth';
import { createDeliveriesClient } from "uber-direct/deliveries";
const token = await getAccessToken();
const deliveriesClient = createDeliveriesClient(token);
const quoteReq = {
pickup_address: "{\"street_address\":[\"100 Maiden Ln\"],\"city\":\"New York\",\"state\":\"NY\",\"zip_code\":\"10023\",\"country\":\"US\"}",
dropoff_address: "{\"street_address\":[\"30 Lincoln Center Plaza\"],\"city\":\"New York\",\"state\":\"NY\",\"zip_code\":\"10023\",\"country\":\"US\"}",
};
const quote = await deliveriesClient.createQuote(quoteReq);
¶ 配達を作成する
import { getAccessToken } from 'uber-direct/auth';
import { createDeliveriesClient } from "uber-direct/deliveries";
const token = await getAccessToken();
const deliveriesClient = createDeliveriesClient(token);
const deliveryRequest = {
pickup_name: 'Store Name',
pickup_address: "{\"street_address\":[\"100 Maiden Ln\"],\"city\":\"New York\",\"state\":\"NY\",\"zip_code\":\"10023\",\"country\":\"US\"}",
pickup_phone_number: '+14155551212',
dropoff_name: 'Customer Name',
dropoff_address: "{\"street_address\":[\"30 Lincoln Center Plaza\"],\"city\":\"New York\",\"state\":\"NY\",\"zip_code\":\"10023\",\"country\":\"US\"}",
dropoff_phone_number: '+14155551212',
manifest_items: [
{
name: 'Thing 1',
quantity: 1,
size: 'small',
price: 1000
},
]
};
const delivery = await deliveriesClient.createDelivery(deliveryRequest);
¶ サポート
コードのバグで修正が必要なものを見つけた場合、または SDK に追加してほしい機能がある場合は、次のフォームからリクエストできます。https://p.uber.com/sdk-bugs