公開プロセス

データの送信方法を選択する

構文エラーのないフィードを作成したら(データが含めれていない場合でも)、Google へのデータ送信方法を設定できます。

リアルタイム乗換案内データは次の 2 つの方法で Google に送信できます。

  • フェッチ: Google 側でウェブ上の特定のロケーションからデータを取得します。
  • プッシュ: HTTP POST を通じてパートナー様がデータをアップロードします。

フェッチやプッシュで運行情報を提供できない場合は、乗換案内パートナー ダッシュボード運行情報エディタを使用して、手動で運行情報を入力できます。

フェッチ

それぞれのリアルタイムのフィードをウェブ上の特定のロケーションに配置でき、Google はそこから 30 秒ごとにデータを取得(フェッチ)します。

Google によるデータ取得が安全に行われるようにするには、次のいずれかの認証オプションを使用します。

  • ダイジェスト認証(ユーザー名 + パスワード)
  • 特定のヘッダーをリクエスト内に追加

認証を設定する場合は、乗換案内サポートチームまで詳細をお知らせください。

プッシュ

プッシュ配信を利用して、Google にデータを能動的に転送(プッシュ)します。プッシュ配信では、GTFS リアルタイム フィードを HTTP POST 経由で自動でアップロードするよう設定します。リアルタイム フィードのセキュリティは OAuth2.0 認証で確保します。

できる限り正確で最新の乗換案内情報をユーザーに提供するには、リアルタイムの更新情報を頻繁にプッシュすることをおすすめします。ルートの更新データと車両位置情報は 30 秒ごとにプッシュし、運行情報については 30 秒~2 分ごとにプッシュするようにしてください。

注: プッシュ アップロード用に API やクライアント ID を追加作成する必要はありません。

始める前に
テストや実装の前に、次のことを確認してください。
  • Partner Dash に 1 つの Google アカウントが登録されている
  • client_secrets.json をダウンロードする
  • Partner Dash にプッシュするリアルタイム フィード ファイルを用意する
認証コードを取得する
まず、Google との認証を行います。シンプルにするため、ブラウザで実行できる HTTP GET リクエストを作成します。リクエスト パラメータは次のとおりです。
パラメータ名
auth_uri client_secrets.json から取得
client_id client_secrets.json から取得
redirect_uri client_secrets.json から取得
scope https://www.googleapis.com/auth/partnerdash.upload
response_type code
access_type offline

注: client_id を作成する必要はありません。

例:

https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fpartnerdash.upload&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&client_id=477490027766-m394r1456hdu2hbgke5i8g3v0l068p3g.apps.googleusercontent.com&access_type=offline

プッシュ配信を承認する

  1. 上の例のリクエストをコピーします。
  2. リクエストをウェブブラウザに入力します。
  3. Partner Dash に関連付けられた Google アカウントでログインします。
  4. [許可] をクリックします。
  5. 画面上のコードをコピーし、アプリケーションに貼り付けます。
アクセス トークンと更新トークンをリクエストする
認証コードを使用して、アクセス トークンと更新トークンをリクエストできます。アクセス トークンは API コードで使用され、更新トークンは認証コードを再取得する必要がない状況下でアクセス トークンの有効期限が切れた時に使用されます。詳しくは、トークンの認証コードの交換をご覧ください。
client_secrets.json には、次の必須項目が含まれます。
  • token_uri
  • client_id
  • client_secret
  • redirect_uri
注: client_secret を作成する必要はありません。
例:
curl \
-F "code={PUT AUTHORIZATION CODE HERE}" \
-F "client_id=477490027766-m394r1456hdu2hbgke5i8g3v0l068p3g.apps.googleusercontent.com" \
-F "client_secret=KsYQi0qdJ4OCUXoPSPmzzLW2" \
-F "redirect_uri=urn:ietf:wg:oauth:2.0:oob" \
-F "grant_type=authorization_code" \
https://accounts.google.com/o/oauth2/token

フィード ファイルをアップロードするには、この呼び出しのレスポンスからアクセス トークンと更新トークンを保存します。

アクセス トークンを更新する
アクセス トークンの有効期限が切れても、権限を取り消さない限り再認証する必要はありません。代わりに、前回のリクエストで取得した更新トークンを使用します。詳しくは、公式ドキュメントをご覧ください。
例:
curl \
-F "client_id=477490027766-m394r1456hdu2hbgke5i8g3v0l068p3g.apps.googleusercontent.com" \
-F "client_secret=KsYQi0qdJ4OCUXoPSPmzzLW2" \
-F "refresh_token={YOUR REFRESH TOKEN}" \
-F "grant_type=refresh_token" \
https://accounts.google.com/o/oauth2/token
基本的な実装は次のようになります。
認証コードを手動入力する(または認証コードを含むファイルを読み込む)
アクセス トークンをリクエスト
while true
   do
      if 認証情報が期限切れ
         認証情報を再生成
     認証情報を使ってフィード ファイルをアップロード
   Done
done
リアルタイム フィードをアップロードする
アクセス トークンを使用し、HTTP POST リクエストを通じてリアルタイム フィードを Partner Dash にアップロードします。アップロード URL は https://partnerdash.google.com/push-upload です。
重要:​ Partner Dash へのアップロードは、Google API ではサポートされていません。
例:
curl \
    --header "authorization: Bearer {YOUR_ACCESS_TOKEN}" \
    -F "alkali_application_name=transit" \
    -F "alkali_account_id={YOUR ACCOUNT ID}" \
    -F "alkali_upload_type=realtime_push_upload" \
    -F "alkali_application_id=100003100" \
    -F "realtime_feed_id={YOUR FEED ID}" \
    -F "file=@/path/to/file" \
    https://partnerdash.google.com/push-upload 

注: 「alkali_account_id」は乗換案内パートナー ダッシュボードのページ URL の「a」パラメータの値です。

この情報は役に立ちましたか?
改善できる点がありましたらお聞かせください。

さらにサポートが必要な場合

次の手順をお試しください。

Is there something we can help you with?

Chat with a member of Transit team

検索
検索をクリア
検索を終了
Google アプリ
メインメニュー
ヘルプセンターを検索
true
82656
false