2016-04-25 23 views
1

FacebookとSpring-Socialを統合し、私の会社のページからフィード/投稿を取得する必要があります。コードはSpring Social - 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)どのように私は、ユーザーのフィードへのアクセスを得ることができます。私の秘密鍵はそのユーザープロファイルにアクセスする必要があります。私が直接FacebookTemplateのコンストラクタを使用して、ユーザー

答えて

1

を提供する必要が

3)が認証を必要としないクエリのために働くこと、のみ)それはOAuthをなし、である(認証されていない接続を提供します。このため、認可例外を取得し、フィードにアクセスするには認証が必要です(認証されたフェイスブックユーザー、アプリケーションにこれらのアクションを実行するための適切な権限が与えられています)。

ユーザーのアクセストークンが認証されるようにする方法が必要であり、コンソールアプリケーションでそのようにするのは難しいかもしれないことに注意してください。 spring.social.facebook.appId、適切に構成spring.social.facebook.appSecretで構成された :説明WebApplicationに春の社会を使用することが基本的に必要なのは

@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ここから取られた例)で、非常に簡単です。コンソールアプリケーションと

テストにクエリしかし、あなたは

  1. FacebookのAPIページにアプリを作成することがあります。
  2. あなたは野生にこのアプリをリリースしたくない場合がありますので、これは常に、あなたのユーザーになりますFacebookTemplate -Constructor

にトークンhttps://developers.facebook.com/tools/accesstoken/

  • 利用に移動します。)