質問編集履歴

1

コードの記述

2019/09/02 08:57

投稿

komaneko
komaneko

スコア5

test CHANGED
File without changes
test CHANGED
@@ -50,6 +50,238 @@
50
50
 
51
51
 
52
52
 
53
+ config.php
54
+
55
+ ```config
56
+
57
+ <?php
58
+
59
+ //アプリケーションの Consumer Key と Consumer Secret
60
+
61
+ $sTwitterConsumerKey = '●●●●●'; //Consumer Key (API Key)
62
+
63
+ $sTwitterConsumerSecret = '●●●●●'; //Consumer Secret (API Secret)
64
+
65
+
66
+
67
+ //アプリケーションのコールバックURL
68
+
69
+ $sTwitterCallBackUri = 'https://●●●●●/twitter-restapi/login/callback.php'; //コールバックURL
70
+
71
+
72
+
73
+ //変数初期化
74
+
75
+ $objTwitterConection = NULL; //TwitterOAuthクラスのインスタンス化
76
+
77
+ $aTwitterRequestToken = array(); //リクエストトークン
78
+
79
+ $sTwitterRequestUrl = ''; //認証用URL
80
+
81
+ $objTwitterAccessToken = NULL; //アクセストークン
82
+
83
+ $objTwUserInfo = NULL; //ユーザー情報
84
+
85
+ ?>
86
+
87
+ ```
88
+
89
+
90
+
91
+ login.php
92
+
93
+ ```login
94
+
95
+ <?php
96
+
97
+ ##############################################
98
+
99
+ ### 初期設定
100
+
101
+
102
+
103
+ //セッションスタート
104
+
105
+ session_start();
106
+
107
+
108
+
109
+ //文字セット
110
+
111
+ header("Content-type: text/html; charset=utf-8");
112
+
113
+
114
+
115
+ //インクルード
116
+
117
+ require_once 'config.php';
118
+
119
+ require_once 'twitteroauth/autoload.php';
120
+
121
+
122
+
123
+ //インポート
124
+
125
+ use Abraham\TwitterOAuth\TwitterOAuth;
126
+
127
+
128
+
129
+ ##############################################
130
+
131
+ ### twitter oauth request token 取得
132
+
133
+
134
+
135
+ //TwitterOAuthクラスをインスタンス化
136
+
137
+ $objTwitterConection = new TwitterOAuth($sTwitterConsumerKey, $sTwitterConsumerSecret);
138
+
139
+
140
+
141
+ //oauthリクエストトークンの取得
142
+
143
+ $aTwitterRequestToken = $objTwitterConection->oauth('oauth/request_token', array('oauth_callback' => $sTwitterCallBackUri));
144
+
145
+
146
+
147
+ //oauthリクエストトークンをセッションに格納
148
+
149
+ $_SESSION['twOauthToken'] = $aTwitterRequestToken['oauth_token'];
150
+
151
+ $_SESSION['twOauthTokenSecret'] = $aTwitterRequestToken['oauth_token_secret'];
152
+
153
+
154
+
155
+ ##############################################
156
+
157
+ ### twitter 認証へ
158
+
159
+
160
+
161
+ //Twitter認証URLの作成
162
+
163
+ $sTwitterRequestUrl = $objTwitterConection->url('oauth/authenticate', array('oauth_token' => $_SESSION['twOauthToken']));
164
+
165
+
166
+
167
+ //Twitter認証画面へリダイレクト
168
+
169
+ header('location: '.$sTwitterRequestUrl);
170
+
171
+ ?>
172
+
173
+
174
+
175
+ ```
176
+
177
+ callback.php
178
+
179
+ ```callback
180
+
181
+ <?php
182
+
183
+ ##############################################
184
+
185
+ ### 初期設定
186
+
187
+
188
+
189
+ //セッションスタート
190
+
191
+ session_start();
192
+
193
+
194
+
195
+ //文字セット
196
+
197
+ header("Content-type: text/html; charset=utf-8");
198
+
199
+
200
+
201
+ //インクルード
202
+
203
+ require_once 'config.php';
204
+
205
+ require_once 'twitteroauth/autoload.php';
206
+
207
+
208
+
209
+ //インポート
210
+
211
+ use Abraham\TwitterOAuth\TwitterOAuth;
212
+
213
+
214
+
215
+ ##############################################
216
+
217
+ ### oauthトークン確認
218
+
219
+ if(empty($_SESSION['twOauthToken']) || empty($_SESSION['twOauthTokenSecret']) || empty($_REQUEST['oauth_token']) || empty($_REQUEST['oauth_verifier'])){
220
+
221
+ echo 'error token!!';
222
+
223
+ exit;
224
+
225
+ }
226
+
227
+ if($_SESSION['twOauthToken'] !== $_REQUEST['oauth_token']) {
228
+
229
+ echo 'error token incorrect!!';
230
+
231
+ exit;
232
+
233
+ }
234
+
235
+
236
+
237
+ ##############################################
238
+
239
+ ### アクセストークン作成
240
+
241
+
242
+
243
+ //取得したoauthトークンでTwitterOAuthクラスをインスタンス化
244
+
245
+ $objTwitterConection = new TwitterOAuth
246
+
247
+ (
248
+
249
+ $sTwitterConsumerKey,
250
+
251
+ $sTwitterConsumerSecret,
252
+
253
+ $_SESSION['twOauthToken'],
254
+
255
+ $_SESSION['twOauthTokenSecret']
256
+
257
+ );
258
+
259
+
260
+
261
+ //アクセストークンの取得
262
+
263
+ $_SESSION['twAccessToken'] = $objTwitterConection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier']));
264
+
265
+
266
+
267
+ //メンバーページへリダイレクト
268
+
269
+ header('location: member.php');
270
+
271
+
272
+
273
+ ```
274
+
275
+
276
+
277
+ member.php
278
+
279
+ ```member
280
+
281
+ エラーが起きなければ、ここでDBにTwitterの情報を登録する処理をしています。
282
+
283
+ ```
284
+
53
285
 
54
286
 
55
287
  Twitterログイン認証の使用意図としましては、