2013-04-15 3 views

답변

0

잠시 주위를 검색하고 실험하면서이 문제를 종합했습니다.

문제 중 하나는 AccessTokens가 만료된다는 것입니다. 따라서 이전 AccessToken이 만료 될 때 새 AccessToken을 검색 할 코드를 작성해야합니다.

public static class FacebookUpdates 
{ 
    private static string AppId = "00000000"; 
    private static string AppSecret = "xxxxxxxxx"; 
    private static string UserID = "0000000000"; 
    private static string AccessToken; 

    public static dynamic GetLinks() 
    { 
     var fb = new FacebookClient(); 
     if (string.IsNullOrEmpty(AccessToken)) AccessToken = GetAccessToken(fb); // Cache the result in static variable AccessToken 
     fb.AccessToken = AccessToken; 

     var query = string.Format("SELECT link_id, title, url FROM link WHERE owner = {0} LIMIT 5", UserID); 

     dynamic parameters = new ExpandoObject(); 
     parameters.q = query; 
     dynamic results; 

     try 
     { 
      results = fb.Get("/fql", parameters); 
     } 
     catch (FacebookOAuthException) 
     {     
      AccessToken = GetAccessToken(fb); // Cache the result in static variable AccessToken 
      fb.AccessToken = AccessToken; 

      // Retry with new AccessToken 
      results = fb.Get("/fql", parameters); 
     } 

     return results; 
    } 

    private static string GetAccessToken(FacebookClient fb) 
    { 
     dynamic result = fb.Get("oauth/access_token", new 
     { 
      client_id = AppId, 
      client_secret = AppSecret, 
      grant_type = "client_credentials" 
     }); 
     return result.access_token; 
    } 
} 

지금 당신이 (죄송합니다,이 예제는 VB에) 코드 숨김에서 GetLinks()를 호출하는 사용자 정의 컨트롤을 만들 수 있습니다

그리고 이것이 내가 생각 해낸 것입니다 ...

Public Shared FacebookLinks As Object = FacebookUpdates.GetLinks().data 

그리고 사용자 정의 컨트롤은 다음과 같을 수 있습니다 ...

<%@ OutputCache Duration="600" VaryByParam="None" %> 
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="FacebookUpdates.ascx.vb" Inherits="FacebookUpdates" %> 
<%For Each Link In FacebookLinks%> 
    <p><a href="<%= Link.url %>" rel="nofollow" target="_blank"><%= Link.title%></a></p> 
<%Next%> 
0

당신은 AS를 작성하지 않는 경우 P.NET 응용 프로그램 등을 사용하면 코드를 작성할 필요가 없습니다. Windows PowerShell과 http://facebookpsmodule.codeplex.com을 사용해보십시오.

관련 문제