2016-04-25 132 views
1

我需要整合Facebook的春季社交,并从我的公司页面获取feed/post。春季社交 - Facebook整合

代码片断

public static void main(String[] args) { 
     Facebook facebook1 = new FacebookTemplate(""); 
     FeedOperations feedOperations = facebook1.feedOperations(); 
     PagedList<Post> feeds = feedOperations.getFeed(); 

     for (Post post : feeds) { 
      System.out.println("@" + post.getName()); 
     } 
    } 

我已经产生的“https://developers.facebook.com”键,但是当我在FacebookTemplate("");输入相同,并运行程序,它引发了我的错误。

Exception in thread "main" org.springframework.social.InvalidAuthorizationException: Invalid OAuth access token. 
    at org.springframework.social.facebook.api.impl.FacebookErrorHandler.handleFacebookError(FacebookErrorHandler.java:81) 
    at org.springframework.social.facebook.api.impl.FacebookErrorHandler.handleError(FacebookErrorHandler.java:59) 
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:616) 
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:572) 
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:547) 

请帮我在这方面,

1)在哪里,我怎么能生成密钥。

2.)我怎样才能访问用户提要。我的密钥可能需要访问该用户配置文件。

3),我需要提供用户

回答

1

使用FacebookTemplate构造将直接为您提供一个未认证用户(即没有OAuth的)唯一的连接,这将对于不需要认证查询工作。这就是为什么您获得授权例外,访问供稿需要身份验证(一个经过身份验证的Facebook用户,已授予您的应用程序执行这些操作的适当授权)。

请注意,您将需要一种方法来获取用户的访问令牌进行身份验证,并在控制台应用程序中这样做可能会很棘手。在web应用中使用Spring社会却是很容易的,基本上所有你需要的是

@Controller 
@RequestMapping("/") 
public class HelloController { 

    private Facebook facebook; 
    private ConnectionRepository connectionRepository; 

    @Inject 
    public HelloController(Facebook facebook, ConnectionRepository connectionRepository) { 
     this.facebook = facebook; 
     this.connectionRepository = connectionRepository; 
    } 

    @RequestMapping(method=RequestMethod.GET) 
    public String helloFacebook(Model model) { 
     if (connectionRepository.findPrimaryConnection(Facebook.class) == null) { 
      return "redirect:/connect/facebook"; 
     } 

     model.addAttribute("facebookProfile", facebook.userOperations().getUserProfile()); 
     PagedList<Post> feed = facebook.feedOperations().getFeed(); 
     model.addAttribute("feed", feed); 
     return "hello"; 
    } 

} 

(例如,从这里拍摄:https://github.com/spring-guides/gs-accessing-facebook) 与spring.social.facebook.appIdspring.social.facebook.appSecret配置正确配置。

测试你有一个控制台应用程序查询但是,您可能

  1. 创建Facebook的API的网页应用程序。
  2. 转到https://developers.facebook.com/tools/accesstoken/
  3. 使用,在FacebookTemplate -Constructor

此令牌将永远是你的用户,所以你可能不希望释放这个程序到野外;)