Ich versuche, FB Freundesliste zu bekommen. Ich weiß, dass es nur diejenigen zurückgibt, die auch die App benutzen.Wie bekomme ich Facebook Freundesliste in der Verwendung von Spring Social
Ich machte REST Punkt, der Freundesliste zurückgeben sollte. Hier ist Code für Tests geändert:
@RequestMapping(value = "/fbfriends",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public List<User> GetFriends(Connection<?> connection) {
log.debug("REST request to get all Friends");
if (connection == null) {
log.error("Cannot create social user because connection is null");
throw new IllegalArgumentException("Connection cannot be null");
}
log.debug("Got connection");
List<Permission> permissions = facebook.userOperations().getUserPermissions();
log.debug("Permission size: " + permissions.size() + " Permission: " + permissions);
for (Permission perm: permissions){
log.debug(perm.getName() + " " + perm.getStatus());
}
List<User> friends = facebook.friendOperations().getFriendProfiles();
log.debug("Friends size: " + friends.size() + " Friends:" + friends.toString());
PagedList<Post> feed = facebook.feedOperations().getFeed();
log.debug("Feed size: " + feed.size() + " Feed: " + feed.toString());
PagedList<UserTaggableFriend> taggable = facebook.friendOperations().getTaggableFriends();
log.debug("Taggable size: " + friends.size() + " Taggable:" + friends.toString());
log.debug("Ho Ho Ho");
return friends;
}
Alle, log.debug
nur für mich, hier ist das Ergebnis:
2016-07-27 17:38:22.443 DEBUG 10828 --- [nio-8080-exec-1] c.m.myapp.aop.logging.LoggingAspect : Exit: org.springframework.social.connect.ConnectionRepository.findPrimaryConnection() with result = [email protected]b877
2016-07-27 17:38:22.581 DEBUG 10828 --- [nio-8080-exec-1] c.m.myapp.web.rest.FbFriendResource : Permission size: 2 Permission: [[email protected], [email protected]]
2016-07-27 17:38:22.581 DEBUG 10828 --- [nio-8080-exec-1] c.m.myapp.web.rest.FbFriendResource : email granted
2016-07-27 17:38:22.581 DEBUG 10828 --- [nio-8080-exec-1] c.m.myapp.web.rest.FbFriendResource : public_profile granted
2016-07-27 17:38:22.694 DEBUG 10828 --- [nio-8080-exec-1] c.m.myapp.web.rest.FbFriendResource : Friends size: 0 Friends:[]
2016-07-27 17:38:22.739 DEBUG 10828 --- [nio-8080-exec-1] c.m.myapp.web.rest.FbFriendResource : Feed size: 0 Feed: []
2016-07-27 17:38:22.788 DEBUG 10828 --- [nio-8080-exec-1] c.m.myapp.web.rest.FbFriendResource : Taggable size: 0 Taggable:[]
2016-07-27 17:38:22.789 DEBUG 10828 --- [nio-8080-exec-1] c.m.myapp.web.rest.FbFriendResource : Ho Ho Ho
2016-07-27 17:38:22.798 DEBUG 10828 --- [nio-8080-exec-1] c.m.myapp.aop.logging.LoggingAspect : Exit: com.mycompany.myapp.web.rest.FbFriendResource.GetFriends() with result = []
Wie man dort sehen kann, ist nur zwei Berechtigungen erteilt: public_profile
und email
.
In einigen Beispielen fand ich, dass Berechtigungen hinzugefügt werden könnten:
ich so nichts gefunden. In meiner App-Einstellungen fand ich diese Seite unter „App Review“
Hier user_friends
„live und für die Nutzer“
- Was ich falsch gemacht haben oder wie eigentlich diese "verwenden, standardmäßig gewährt "Erlaubnis mit Spring Social?
- Wie kann ich zusätzliche Berechtigungen wie
user_posts
anfordern und sie in Spring Framework verwenden?
Es werden nur diejenigen Freunde zurückgegeben, die user_friends die Berechtigung für die App erteilt haben. Meine Vermutung ist, dass Sie nicht danach fragen – WizKid
Ich verstehe, dass es nur diese Benutzer zurückgibt. Ich habe 3-4 Benutzer, die FB-Login in meiner App verwendet haben. Wie im zweiten Screenshot gezeigt, gibt es "user_friends" in "approved items", aber es gibt diese Berechtigung nicht über die Methode "facebook.userOperations(). GetUserPermissions()" zurück. Ich frage, wie man diese Erlaubnis verwendet (die vermutlich standardmäßig gewährt wird) und neue Erlaubnis bittet/hinzufügt. –
Sie lesen die Facebook-Login-Dokumentation, wie Sie um Erlaubnis fragen – WizKid