質問するログイン新規登録

質問編集履歴

2

修正

2017/10/29 05:52

投稿

saik
saik

スコア12

title CHANGED
File without changes
body CHANGED
@@ -31,7 +31,7 @@
31
31
 
32
32
  認可コード取得後のソース ↓↓
33
33
 
34
- $code = $_GET["code";
34
+ $code = $_GET["code"];
35
35
  $params = array(
36
36
  'client_id' => CLIANT_ID,
37
37
  'client_secret' => CLIENT_SECRET,

1

行っている流れ、及び挙動

2017/10/29 05:52

投稿

saik
saik

スコア12

title CHANGED
File without changes
body CHANGED
@@ -6,4 +6,71 @@
6
6
  認可コードは期限が切れるたびにサイトにアクセスし、ボタンを押して
7
7
  取得しないとダメなんでしょうか・・・・?
8
8
 
9
- よろしくお願いします。。
9
+ よろしくお願いします。。
10
+
11
+ ※試した方法というか
12
+ まず
13
+ test.phpで
14
+
15
+ 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名】
16
+
17
+ 上記のURLを叩きます。
18
+ 設定したコールバックURLに認可コード付きで返ってくる感じなのですが
19
+ http://【URL】/callback.php ←設定したコールバックURL
20
+
21
+ test.phpのURLを叩くとどうしても
22
+ ![![イメージ説明](7b30ee7d1d764952e351fac79019eead.png)](f316ff333d6415b152f68eb931702012.png)
23
+
24
+ この認証画面で止まってしまいます。
25
+ 手動で認証ボタンを押さないとコールバックURLにリダイレクトされない感じです。
26
+ 手動で認証ボタンを押し、認可コードを取得しAPIでデータを取得することはできています。
27
+
28
+ 要はこの認可コードの取得をtest.phpでURLを叩いたときに自動でコールバックURLに返ってくれれば
29
+ 問題ないのですが。。
30
+
31
+
32
+ 認可コード取得後のソース ↓↓
33
+
34
+ $code = $_GET["code";
35
+ $params = array(
36
+ 'client_id' => CLIANT_ID,
37
+ 'client_secret' => CLIENT_SECRET,
38
+ 'code' => $code,
39
+ 'grant_type' => 'authorization_code',
40
+ 'redirect_uri' => REDIRECT_URL,
41
+ );
42
+ $headers = array(
43
+ 'Content-Type: application/x-www-form-urlencoded',
44
+ );
45
+ $request_options = array(
46
+ 'http' => array(
47
+ 'ignore_errors' => true,
48
+ 'method' => 'POST',
49
+ 'content' => http_build_query($params),
50
+ 'header' => implode("\r\n", $headers),
51
+ ),
52
+ );
53
+ $context = stream_context_create($request_options);
54
+
55
+ $response_body = file_get_contents('https://api.thebase.in/1/oauth/token', false, $context);
56
+ $response_array = json_decode($response_body);
57
+
58
+ $token = $response_array->access_token; # YOUR ACCESS TOKEN
59
+
60
+
61
+
62
+ $headers = array(
63
+ 'Authorization: Bearer ' . $token,
64
+ );
65
+ $request_options = array(
66
+ 'http' => array(
67
+ 'method' => 'GET',
68
+ 'header' => implode("\r\n", $headers),
69
+ 'ignore_errors' => true,
70
+ ),
71
+ );
72
+ $context = stream_context_create($request_options);
73
+
74
+ $response_body = file_get_contents('https://api.thebase.in/1/items?limit=100', false, $context);
75
+ $response_array = json_decode($response_body);
76
+ var_dump($response_array);