我怎么能得到链接在我的Facebook墙上与.net Facebook SDK

本文关键字:Facebook net SDK 我的 怎么能 链接 | 更新日期: 2023-09-27 18:09:10

我正在使用这里找到的SDK…http://facebooksdk.net/

在这一点上,文档似乎严重缺乏。

我怎么能得到链接在我的Facebook墙上与.net Facebook SDK

经过一段时间的搜索和实验,我把这些拼凑在一起。

  • 首先,你需要在https://developers.facebook.com/上设置一个应用程序来检索你的AppSecret和AppId。
  • 然后你需要找到你的UserId。它是你访问https://graph.facebook.com/{username}
  • 时的id字段

事实证明,其中一个挑战是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;
    }
}

现在你可以创建一个用户控件,调用GetLinks()在代码背后(对不起,这个例子是在VB)…

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%>

如果你不是在写ASP。NET应用程序或类似的,您不需要编写代码。尝试使用Windows PowerShell和http://facebookpsmodule.codeplex.com.