2016-04-25 210 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

此令牌將永遠是你的用戶,所以你可能不希望釋放這個程序到野外;)