标签: facebook-c#-sdk

facebook-C#-sdk MVC"Hello World"应用程序 - 如何获取访问令牌?

我从CodePlex下载了C#Facebook SDK"Simple MVC Website Example":

http://facebooksdk.codeplex.com/releases/view/54371

并已成功通过我的测试Facebook应用程序进行身份验证.但我无法弄清楚如何获取访问令牌(我想要离线访问,所以我只需要抓取一次令牌,当用户首次授权我的应用程序获取他们的Feed数据时).

非常感谢

c# model-view-controller facebook facebook-c#-sdk

9
推荐指数
2
解决办法
1万
查看次数

错误:无法执行运行时绑定(在facebook配置文件中未设置location/hometown /任何设置时)

我正面临一个错误

无法对空引用执行运行时绑定

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:无法对空引用执行运行时绑定

来源错误:

第27行:lblBirthday.Text =(myInfo.birthday == null?string.Empty:DateTime.Parse(myInfo.birthday).ToString("dd-MMM-yy")); 第28行:lblHometown.Text =(myInfo.hometown.name == null?string.Empty:myInfo.hometown.name); 第29行:lblLocation.Text =(myInfo.location.name == null?string.Empty:myInfo.location.name); 第30行:pnlHello.Visible = true; 第31行:}

这是我的代码:

var fb = new FacebookWebClient();
    dynamic myInfo = fb.Get("me");
    lblName.Text = myInfo.name;
    imgProfile.ImageUrl = "https://graph.facebook.com/" + myInfo.id + "/picture";
    lblBirthday.Text = (myInfo.birthday == null ? string.Empty : DateTime.Parse(myInfo.birthday).ToString("dd-MMM-yy"));
    lblHometown.Text = (myInfo.hometown.name == null ? string.Empty : myInfo.hometown.name);
    lblLocation.Text = (myInfo.location.name == null ? string.Empty : myInfo.location.name);
    pnlHello.Visible = true;
Run Code Online (Sandbox Code Playgroud)

c# facebook facebook-c#-sdk

9
推荐指数
1
解决办法
2万
查看次数

如何开始使用面向WP7的Facebook C#SDK?

我一直在阅读(并且搜索很多)但是找不到适合开始使用Facebook C#SDK for WP7的资源.我不是在寻找代码的副本,而是使用这个库来开发我的WP7应用程序的起点.

我的目标是提供一个功能来验证用户,并允许他们发布到Facebook.

我已经阅读了他们的文档,这个主题没有任何内容,只是如何在facebook(???)中注册您的应用程序.他们有两个入门链接,但他们提出了一个空页.我遇到的大多数示例都是针对.NET 4(用于桌面)或ASP.NET,它们不使用与WP7(silverlight)相同的模型.

我已经查看了所提供的类和方法,它们看起来很容易实现,但显然需要预先进行的步骤(这些是什么?).

我知道我们可能不得不设置一个新的facebook应用程序实例,然后进行身份验证,但到目前为止,我还没有非常成功地解决这个问题.

有人可以分享一些资源,从哪里开始这个?谢谢.

.net silverlight windows-phone-7 facebook-c#-sdk

9
推荐指数
1
解决办法
4692
查看次数

Facebook crossdomain.xml silverlight错误

我有一个位于Facebook照片服务器上的crossdomain.xml的问题.第一个问题出现在Silverlight请求clientaccesspolicy.xml - Facebook服务器返回403 - Access Denied,这很好,因为他们也在他们的服务器上部署了crossdomain.xml.然后Silverlight请求crossdomain.xml,它得到的响应就是这样:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain- policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="*" secure="false" to-ports="*" />
    <site-control permitted-cross-domain-policies="master-only" />
</cross-domain-policy>
Run Code Online (Sandbox Code Playgroud)

然后我用这个玩了一段时间,将crossdomain.xml部署到我自己的服务器上并得到了相同的结果 - 一个安全例外.然后我开始解决问题并得出结论,如果我只删除to-ports ="*"属性,一切都会按预期工作?有没有人知道如何克服这个问题,有没有人遇到过同样的问题,或者是我做错了什么?

silverlight facebook cross-domain facebook-c#-sdk

9
推荐指数
1
解决办法
909
查看次数

喜欢/不喜欢页面上的无用错误消息

我们使用Like Gate构建了一个Facebook 页面选项卡应用程序.我们之前已经做过无数次,在这方面这个应用并没有什么不寻常之处.

在我们的ASP.Net 4.0 Web窗体应用程序中,我们使用了Facebook C#SDK,最新版本(6.4.2)直接从NuGet和以下C#代码中提取:

public static bool IsPageLiked(string appId,
    string appSecret, string signedRequest)
{
    var fb = new FacebookClient { AppId = appId };
    dynamic req = fb.ParseSignedRequest(appSecret, signedRequest);
    return req.page.liked;
}
Run Code Online (Sandbox Code Playgroud)

我们以前曾多次使用过此代码,我们从来没有遇到任何问题.该应用程序及其Like Gate在未发布的页面上运行良好- 因此只有位于相应应用角色中的页面管理员才能看到该应用.

不过,我们看到了间歇性的错误.这仅影响某些用户,但是这些用户只要他们喜欢或不同于托管Tab应用的页面就可以看到该消息:

此内容不再可用
您请求的内容目前无法显示.它可能暂时不可用,您点击的链接可能已过期,或者您可能无权查看此页面.

如果您尝试访问您没有权限的内容,则会出现该错误消息.但是,用户仍然是Page Admins,因此他们查看App和Page的权限不会改变.

谷歌表示,这是Facebook的一个错误,没有人真正找到一个令人满意的解决方案.奇怪的是,我们的客户对这个答案并不十分印象深刻.

有没有人能提供更具建设性的东西?请?:)

facebook permission-denied facebook-c#-sdk

9
推荐指数
1
解决办法
1646
查看次数

如何通过代码获取页面访问令牌?

我需要为我拥有的网页生成页面访问令牌,网页将使用此令牌发布到其Facebook页面订阅源.

这就是我做的:

  1. 转到Graph API Explorer
  2. 从下拉列表中选择我的应用
  3. 点击 Get Access Token
  4. 选择正确的权限(manage_pages/ user_events)

要获得Page Access Token我必须me/accounts在Graph API Explorer中运行.这将显示我使用新页面访问令牌(短期(大约60分钟))到每个页面的所有页面.

这样Page Access Token可以在我的C#代码中使用,以便发布到Feed.

问题

当另一个用户使用我的网页发布帖子时,我需要生成一个新的Page Access Token(在代码中),然后用它将用户帖子发布到网站的Facebook提要.问题是我显然不能在那里授予帖子,所以我该如何处理?

我显然不能运行me/accounts(在代码中)命令来Page Access Token从这里获取.

我已经查看了扩展的访问令牌,但这将持续60天,然后它将是与上面相同的问题.

c# facebook facebook-graph-api facebook-c#-sdk

9
推荐指数
1
解决办法
1万
查看次数

Facebook身份验证和奇怪的重定向行为

我目前正在使用http://facebooksdk.codeplex.com测试facebook connect的OAuth实现.

我有一个带有2个简单动作的FacebookController,叫做LogOnCallBack.

一切正常,用户正确登录到我的系统.

问题是当调用CallBack动作时,会发生一些奇怪的事情

return Redirect(loggedUrl);
Run Code Online (Sandbox Code Playgroud)

重定向到正确记录的URL但以以下字符结尾: #_=_

似乎Facebook服务器使用以下HTTP标头将信息发送到我的网络服务器:

HTTP/1.1 302 Found
Cache-Control: private, no-cache, no-store, must-revalidate
Expires: Sat, 01 Jan 2000 00:00:00 GMT
Location: http://mywebsite.com/Facebook/CallBack/?state=1&code=AQCXexr10uxANSBOu9JqrBDxqPkWbsyxM1S9ltuY9XwCXW7eGsOII329SthClxOSM_a7wJvwrXh1_O3D5I7E_nxCDTWDLpyYdMpMUfw4zMWcQ4oV2PmRkIMd2NfPYRKlkLgkurEzka1CjAF1jp8Xb3crklOB59W4IT7LZy6MEmFusuhSKacmsTcV1LAOW4uJ3K4#_=_
P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"
Pragma: no-cache
Set-Cookie: locale=en_US; expires=Fri, 28-Oct-2011 00:09:38 GMT; path=/; domain=.facebook.com
Content-Type: text/html; charset=utf-8
X-FB-Server: 10.43.103.61
X-Cnection: close
Date: Fri, 21 Oct 2011 00:09:38 GMT
Content-Length: 0
Run Code Online (Sandbox Code Playgroud)

如您所见,我们可以#_=_Location值的末尾找到字符.

这就像Redirect #_=_通过将字符自动添加到loggedUrl来考虑字符.

即使我尝试使用 …

redirect facebook-c#-sdk asp.net-mvc-3

8
推荐指数
1
解决办法
1732
查看次数

facebook c#sdk入门

我想编写一个控制台应用程序,每天早上自动将信息发布到我的墙上.

我已经注册了Facebook开发者并拥有AppID和App Secret

我一直在尝试使用C#facebook SDK并查看了几个示例.

似乎示例获取用户令牌 - 但必须使用Windows窗体中的浏览器.这是一个自动化过程 - 所以我不想让用户在场.

我还使用应用程序令牌创建了一些示例 - 但它似乎无法写入墙.

我很快写了Twitter等价物.我一定在这里遗漏了什么?

什么是正确的方法?

似乎所有我应该需要的是:FaceBookClient(appID,appSecret)然后只是FaceBookClient.Put(消息)???

澄清补充说:

使用C#facebook sdk winform应用程序我不得不更改他们的FacebookLoginDialog.cs以使用folling URL:

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=APPID&client_secret=APPSECRET&scope=user_about_me,publish_stream,offline_access

它返回WebBrowser.DocumentText中的一个accesskey

如果我然后打电话:

            var fb = new FacebookClient(_accessToken);
            dynamic parameters = new ExpandoObject();
            parameters.message = "Hello World!";
            dynamic result = fb.Post("me/feed", parameters);
Run Code Online (Sandbox Code Playgroud)

我得到了例外:

(OAuthException)必须使用活动访问令牌来查询有关当前用户的信息.

如果我将上面的代码更改为不使用该访问令牌 - 但使用appID和Appsecret:

           FacebookClient myFacebookClient = new FacebookClient("APPID", "APPSECRET");
            dynamic parameters = new ExpandoObject();
            parameters.message = "Hello World!";
            dynamic result = myFacebookClient.Post("me/feed", parameters);
Run Code Online (Sandbox Code Playgroud)

然后我得到了例外:

(OAuthException)必须使用活动访问令牌来查询有关当前用户的信息.

我想这是同样的例外

c# sdk facebook facebook-c#-sdk

8
推荐指数
1
解决办法
2万
查看次数

使用installshield在安装后运行解决方案exe

我想在安装后使用InstallShield运行我的exe.InstallShield正确完成设置但不运行exe.

我找到了另一种在启动时添加exe的方法,但它在重启后运行.我希望它能在不重启的情况下运行.

可能吗 ?

asp.net installshield facebook-c#-sdk

8
推荐指数
2
解决办法
1万
查看次数

Facebook图形api分页如何工作以及如何用它迭代facebook用户提要?

所以.我遇到了一个问题,投入数小时在互联网上搜索并没有多大帮助,认为SO总是一个不错的选择.我有一个facebook GraphAPI调用,以获取Facebook用户提供如下所示:

dynamic myFeed = await fb.GetTaskAsync(
                    ("me/feed?fields=id,from {{id, name, picture{{url}} }},story,picture,link,name,description," +
                    "message,type,created_time,likes,comments")
                    .GraphAPICall(appsecret_proof));
Run Code Online (Sandbox Code Playgroud)

上面帮我回复一些最新的帖子,用户发布了一段时间说21或22个帖子但不是完整的用户帖子列表.我正在寻找一种使用facebook分页迭代用户提要的方法我最终找到了这个与facebook Offset分页一起使用的解决方案.

dynamic myFeed = await fb.GetTaskAsync(
                    ("me/feed?fields=id,from {{id, name, picture{{url}} }},story,picture,link,name,description," +
                    "message,type,created_time,likes,comments")
                    .GraphAPICall(appsecret_proof), new {limit = "1000", offset = "21" });
Run Code Online (Sandbox Code Playgroud)

这让我向我想要实现的目标迈进了一步,但我认为这不是理想的做法,也不会返回所有用户帖子.有没有解决方法?请帮忙.

PS:我正在使用Facebook C#SDK.

更新1: 根据杰里米的回答.似乎facebook光标分页是我的要求唯一正确的选项.我想知道C#facebook sdk是否提供任何功能来迭代下一个边缘,这样我就可以在一个电话中获得所有的帖子,这有什么可能的解决方案吗?PS:我已经多次通过facebook API文档,我知道Nodes,Edges和Fields究竟是什么,唯一不幸的是facebook还不支持C#SDK,我无法在Facebook上找到合适的文档C#SDK也是.

c# pagination facebook facebook-graph-api facebook-c#-sdk

8
推荐指数
2
解决办法
7937
查看次数