HWI Oauth 和 Facebook 访问 user_friends
HWIOauth & Facebook access user_friends
我正在尝试使用 HWIOauthBundle 访问 facebook 在 oauth 之后发送的 user_friends。
##config.yml
resource_owners:
facebook:
type: facebook
client_id: %facebook_app_id%
client_secret: %facebook_app_secret%
scope: "email, public_profile, user_friends"
infos_url: "https://graph.facebook.com/me?fields=id,name,email,picture.type(square)"
paths:
email: email
profilepicture: picture.data.url
在loadUserByOAuthUserResponse(UserResponseInterface $response)
我这样做是为了记录数据:
$attr = $response->getResponse();
$this->logger->info(print_r($attr,true));
我得到一个输出数组,其中包含以下信息:
Array
(
[id] => 1015539##########
[name] => john smith
[email] => johnsmith@gmail.com
[picture] => Array
(
[data] => Array
(
[is_silhouette] =>
[url] => https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xaf1/v/t1.0-1/p50x50/10998###_1015530##########_207119375##########_n.jpg?oh=1f0e94af68daa############f888611&oe=5#######&__gda__=1###720385_a2c0bb15f160abf4############3289
)
)
)
(#### 和为隐私添加的假名)
如何访问 user_friends?
我相信它在 facebook 端工作,因为它在登录时请求许可。
你走在正确的轨道上。您在登录用户时获得了 user_friends 权限。
下一步是对 /me/friends 边缘进行图形 API 调用(使用此人当前获得的访问令牌)并解析响应。
我不知道您是否已将 Facebook SDK 集成到您的 PHP 应用程序中,但如果是,您只需执行以下操作:
/* PHP SDK v4.0.0 */
/* make the API call */
$request = new FacebookRequest(
$session,
'GET',
'/me/friends'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */
或者,您可以进行 curl 调用。有关如何执行此操作的更多信息,请查看 https://developers.facebook.com/docs/graph-api/reference/v2.3/user/friends
我通过添加 config.yml:
resource_owners:
facebook:
type: facebook
client_id: "%fb_app_id%"
client_secret: "%fb_app_secret%"
scope: "email,user_friends"
infos_url: "https://graph.facebook.com/me?fields=id,name,email,picture.type(square),friends"
options:
display: page
paths:
friends: friends
profilepicture: picture.data.url
现在,在 FOSUBUserProvider 的 loadUserByOAuthUserResponse 中,您可以从响应好友数据中获取。
不需要SDK。
我正在尝试使用 HWIOauthBundle 访问 facebook 在 oauth 之后发送的 user_friends。
##config.yml
resource_owners:
facebook:
type: facebook
client_id: %facebook_app_id%
client_secret: %facebook_app_secret%
scope: "email, public_profile, user_friends"
infos_url: "https://graph.facebook.com/me?fields=id,name,email,picture.type(square)"
paths:
email: email
profilepicture: picture.data.url
在loadUserByOAuthUserResponse(UserResponseInterface $response)
我这样做是为了记录数据:
$attr = $response->getResponse();
$this->logger->info(print_r($attr,true));
我得到一个输出数组,其中包含以下信息:
Array
(
[id] => 1015539##########
[name] => john smith
[email] => johnsmith@gmail.com
[picture] => Array
(
[data] => Array
(
[is_silhouette] =>
[url] => https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xaf1/v/t1.0-1/p50x50/10998###_1015530##########_207119375##########_n.jpg?oh=1f0e94af68daa############f888611&oe=5#######&__gda__=1###720385_a2c0bb15f160abf4############3289
)
)
)
(#### 和为隐私添加的假名)
如何访问 user_friends?
我相信它在 facebook 端工作,因为它在登录时请求许可。
你走在正确的轨道上。您在登录用户时获得了 user_friends 权限。
下一步是对 /me/friends 边缘进行图形 API 调用(使用此人当前获得的访问令牌)并解析响应。
我不知道您是否已将 Facebook SDK 集成到您的 PHP 应用程序中,但如果是,您只需执行以下操作:
/* PHP SDK v4.0.0 */
/* make the API call */
$request = new FacebookRequest(
$session,
'GET',
'/me/friends'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */
或者,您可以进行 curl 调用。有关如何执行此操作的更多信息,请查看 https://developers.facebook.com/docs/graph-api/reference/v2.3/user/friends
我通过添加 config.yml:
resource_owners:
facebook:
type: facebook
client_id: "%fb_app_id%"
client_secret: "%fb_app_secret%"
scope: "email,user_friends"
infos_url: "https://graph.facebook.com/me?fields=id,name,email,picture.type(square),friends"
options:
display: page
paths:
friends: friends
profilepicture: picture.data.url
现在,在 FOSUBUserProvider 的 loadUserByOAuthUserResponse 中,您可以从响应好友数据中获取。 不需要SDK。