質問編集履歴

1

現在のコードを追記しました。

2017/10/04 03:14

投稿

cosmo_tera
cosmo_tera

スコア11

test CHANGED
File without changes
test CHANGED
@@ -97,3 +97,171 @@
97
97
  echo (string) $tokenMetadata["\0*\0user_id"];
98
98
 
99
99
  →Cannot use object of type
100
+
101
+
102
+
103
+ ###現在のコード
104
+
105
+ - ログインリンク生成部
106
+
107
+ ```ここに言語を入力
108
+
109
+ require_once("sdk/facebook/src/Facebook/Facebook.php");
110
+
111
+ require_once("sdk/facebook/src/Facebook/autoload.php");
112
+
113
+
114
+
115
+ $fb = new Facebook\Facebook([
116
+
117
+ 'app_id' => 'xxxxx',
118
+
119
+ 'app_secret' => 'xxxxxx',
120
+
121
+ 'default_graph_version' => 'v2.10',
122
+
123
+ ]);
124
+
125
+
126
+
127
+
128
+
129
+ $helper = $fb->getRedirectLoginHelper();
130
+
131
+
132
+
133
+ $permissions = ['email']; // Optional permissions
134
+
135
+ $loginUrl = $helper->getLoginUrl('リダイレクトするコールバックURL', $permissions);
136
+
137
+
138
+
139
+ ?>
140
+
141
+
142
+
143
+ <a href="' . $loginUrl . '"><img src="xxx" /></a>
144
+
145
+ ```
146
+
147
+
148
+
149
+ - リダイレクトするコールバックURL
150
+
151
+ ```ここに言語を入力
152
+
153
+ session_start();
154
+
155
+
156
+
157
+ require_once("src/Facebook/Facebook.php");
158
+
159
+ require_once("src/Facebook/autoload.php");
160
+
161
+
162
+
163
+ $fb = new Facebook\Facebook([
164
+
165
+ 'app_id' => 'xxxxx',
166
+
167
+ 'app_secret' => 'xxxxxxx',
168
+
169
+ 'default_graph_version' => 'v2.10',
170
+
171
+ ]);
172
+
173
+
174
+
175
+ $helper = $fb->getRedirectLoginHelper();
176
+
177
+
178
+
179
+ try {
180
+
181
+ $accessToken = $helper->getAccessToken('コールバックURL');
182
+
183
+ } catch(Facebook\Exceptions\FacebookResponseException $e) {
184
+
185
+ // When Graph returns an error
186
+
187
+ echo 'Graph returned an error: ' . $e->getMessage();
188
+
189
+ exit;
190
+
191
+ } catch(Facebook\Exceptions\FacebookSDKException $e) {
192
+
193
+ // When validation fails or other local issues
194
+
195
+ echo 'Facebook SDKa returned an error: ' . $e->getMessage();
196
+
197
+ exit;
198
+
199
+ }
200
+
201
+
202
+
203
+ if (! isset($accessToken)) {
204
+
205
+ if ($helper->getError()) {
206
+
207
+ header('HTTP/1.0 401 Unauthorized');
208
+
209
+ echo "Error: " . $helper->getError() . "\n";
210
+
211
+ echo "Error Code: " . $helper->getErrorCode() . "\n";
212
+
213
+ echo "Error Reason: " . $helper->getErrorReason() . "\n";
214
+
215
+ echo "Error Description: " . $helper->getErrorDescription() . "\n";
216
+
217
+ } else {
218
+
219
+ header('HTTP/1.0 400 Bad Request');
220
+
221
+ echo 'Bad request';
222
+
223
+ }
224
+
225
+ exit;
226
+
227
+ }
228
+
229
+
230
+
231
+ // Logged in
232
+
233
+ echo '<h3>Access Token</h3>';
234
+
235
+ var_dump($accessToken->getValue());
236
+
237
+
238
+
239
+ // The OAuth 2.0 client handler helps us manage access tokens
240
+
241
+ $oAuth2Client = $fb->getOAuth2Client();
242
+
243
+
244
+
245
+ // Get the access token metadata from /debug_token
246
+
247
+ $tokenMetadata = $oAuth2Client->debugToken($accessToken);
248
+
249
+ echo '<h3>Metadata</h3>';
250
+
251
+ var_dump($tokenMetadata);
252
+
253
+ //ここまでサンプルどおり。
254
+
255
+
256
+
257
+ $tokenMetadata->metadata->user_id;
258
+
259
+ (Cannot access protected property)
260
+
261
+
262
+
263
+ echo $tokenMetadata["\0*\0metadata"]["user_id"];
264
+
265
+ (Cannot use object of type)
266
+
267
+ ```