質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.03%

  • API

    1268questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

どなたかBase APIに詳しい方はおられないでしょうか?

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 157

saik

score 3

どなたかBASE APIにお詳しい方はおられないでしょうか?

商品検索のPHPのサンプルコードなど頂ければ助かります。
ドキュメント等を見ても認可コードの取得から検索結果取得までの解説が
なかなか見つけられません。
認可コードは期限が切れるたびにサイトにアクセスし、ボタンを押して
取得しないとダメなんでしょうか・・・・?

よろしくお願いします。。

※試した方法というか
まず
test.phpで

https://api.thebase.in/1/oauth/authorize?response_type=code&client_id=【client_id】&redirect_uri=【コールバックURL】&scope=read_users%20read_orders%20read_items&state=【任意のstate名】

上記のURLを叩きます。
設定したコールバックURLに認可コード付きで返ってくる感じなのですが
http://【URL】/callback.php ←設定したコールバックURL

test.phpのURLを叩くとどうしても
![イメージ説明](f316ff333d6415b152f68eb931702012.png)

この認証画面で止まってしまいます。
手動で認証ボタンを押さないとコールバックURLにリダイレクトされない感じです。
手動で認証ボタンを押し、認可コードを取得しAPIでデータを取得することはできています。

要はこの認可コードの取得をtest.phpでURLを叩いたときに自動でコールバックURLに返ってくれれば
問題ないのですが。。

認可コード取得後のソース ↓↓

$code = $_GET["code"];
$params = array(
'client_id'     => CLIANT_ID,
'client_secret' => CLIENT_SECRET,
'code'          => $code,
'grant_type'    => 'authorization_code',
'redirect_uri'  => REDIRECT_URL,
);
$headers = array(
'Content-Type: application/x-www-form-urlencoded',
);
$request_options = array(
'http' => array(
'ignore_errors' => true,
'method'  => 'POST',
'content' => http_build_query($params),
'header'  => implode("\r\n", $headers),
),
);
$context = stream_context_create($request_options);

$response_body = file_get_contents('https://api.thebase.in/1/oauth/token', false, $context);
$response_array = json_decode($response_body);

$token = $response_array->access_token; # YOUR ACCESS TOKEN

$headers = array(
'Authorization: Bearer ' . $token,
);
$request_options = array(
'http' => array(
'method' => 'GET',
'header' => implode("\r\n", $headers),
'ignore_errors' => true,
),
);
$context = stream_context_create($request_options);

$response_body = file_get_contents('https://api.thebase.in/1/items?limit=100', false, $context);
$response_array = json_decode($response_body);
var_dump($response_array);

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • CHERRY

    2017/10/29 13:42 編集

    まずは、自分で試してみたソースコードと結果を質問に追記してください。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 91.03%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • API

    1268questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。