Tag: facebook

改变facebook redirect_uri web api

我想知道是否有人可以帮助我或指出我正确的方向。 我在我的web api 2项目中设置了facebook社交登录,它运行正常。 但是,当我将其部署到生产环境时,我发现redirect_uri显示的是HTTP而不是HTTPS,这会导致服务崩溃。 我想知道的是首先是如何构造redirect_uri以及是否有任何更新方法。 发生这种情况的全部原因是因为我们的负载均衡器。 该站点在HTTP协议下运行,但负载均衡器接受HTTPS流量并将其重定向到HTTP。 不幸的是,我无法更新Loadbalancer,因此需要找到一种解决方法。 我试图拦截ApplyRedirect方法中的IFacebookAuthenticationProvider ,这成功地允许我将redirect_uri从HTTP更改为HTTPS。 然而,当我这样做时,一旦我登录Facebook并且不知道为什么会发生这种情况,我会得到access_denied的错误。 有人可以帮我实现吗? 我可以明确地将facebook设置的redirect_uri和cookie标记为HTTPS吗? 这是我的Facebook提供者类 public class FacebookAuthProvider : IFacebookAuthenticationProvider { public void ApplyRedirect(FacebookApplyRedirectContext context) { string redirect_uri = context.RedirectUri; redirect_uri = redirect_uri.Replace(“redirect_uri=http”, “redirect_uri=https”); context.Response.Redirect(redirect_uri); } public Task Authenticated(FacebookAuthenticatedContext context) { context.Identity.AddClaim(new Claim(“ExternalAccessToken”, context.AccessToken)); return Task.FromResult(null); } public Task ReturnEndpoint(FacebookReturnEndpointContext context) { return Task.FromResult(null); } […]

Facebook登录Windows Phone 8.1

我试图找出一个从Windows Phone 8.1应用程序(C#)登录Facebook的简单代码。 由于NuGet的Facebook Client不针对Windows Phone 8.1,我似乎必须编写一些额外的代码。 正如我在这篇Facebookpost中读到的那样 ,我需要启动一个Uri来调用Login Dialog。 那么多,我成功了: await Launcher.LaunchUriAsync(FacebookUri.DisplayLoginDialog); 其中DisplayLoginDialog是一个静态字符串对象,其中包含请求所需的必要数据(appId,productId,permissions等)。 我被重定向到Facebook应用程序,接受我的应用程序需要这样的权限。 我接受了。 所以现在怎么办? 如何通过access_token获得响应或其他内容? 我为此研究了很多,但我找不到相关的post。 上面的facebook链接,在处理登录对话框的部分说: 如果有人成功登录,则会自动触发您应用的URI关联,这意味着它们将与访问令牌一起发送到您的应用: msft-{ProductID}://authorize/? access_token={user-access-token}& expires_in={expiration-time-of-token} 但我对如何在C#中实际使用它感到困惑。 如何在登录失败后access token的响应,如果失败则如何获得error code和error message ,就像它写在facebookpost中一样?

整合Facebook聊天

我已经编写了一个程序来集成在C#中的Facebook用户聊天,但是在发送之后我总是得到响应服务器。 我检查了API密钥和App秘密,两者都是正确的。 看起来我将一些错误的参数传递给服务器。 这是我的代码。 private void GetDetailsButton_Click(object sender, EventArgs e) { TcpClient FacebookClient = new TcpClient(); FacebookClient.Connect(“chat.facebook.com”, 5222); NetworkStream myns = FacebookClient.GetStream(); string xml = “” + “”; StreamWriter mySw = new StreamWriter(myns); mySw.WriteLine(xml); //sending initial request mySw.Flush(); byte[] serverResponseByte = new byte[1024]; int myBytesRead = 0; StringBuilder myResponseAsSB = new StringBuilder(); //reading response from […]

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); 我得到了例外: (OAuthException)必须使用活动访问令牌来查询有关当前用户的信息。 如果我将上面的代码更改为不使用该访问令牌 – 但使用appID和Appsecret: FacebookClient myFacebookClient = new FacebookClient(“APPID”, […]

OAuthWebSecurity与Facebook未按预期使用电子邮件权限

使用新的OAuthWebSecurity进行Facebook身份validation,我在我的Facebook应用程序中添加了电子邮件权限。 现在,正如我可以阅读的那样,我需要定义一个范围,以便能够在结果中实际获取电子邮件。 到目前为止没有范围我没有收到用户的电子邮件,我不知道为什么因为我看不到在哪里定义“范围”。 它只是ASP.NET MVC 4默认身份validation控制器外部登录的一小部分。

使用C#从Facebook获取FB页面数据

在我的桌面应用程序中,我想阅读特定Facebook页面的Wallpost,消息,类似计数等(不适用于facebook用户) 我经历了这篇post获取用户数据(在stackoverflow上) 。 我想实现同样的事情,但对于FB页面。 我准备创建一个Facebook应用程序来实现这一点,并让用户授予提取数据的权限。 请就上述建议。

在WP7中使用Facebook.dll发布到Facebook用户墙

如何使用WP7中的Facebook.dll在Facebook中发布到用户墙。 我发现了一个名为PostAsync()的方法,但我无法理解这些参数。 任何帮助都会感激不尽。 谢谢

Facebook用户是否可以使用W8 / WP8 c#sdk进行用户请求?

我正试图让我的手机游戏邀请来自facebook的朋友,但我无法做到。 我正在使用面向Windows 8的Facebook c#SDK(希望在准备好WP8,Android和iOS时移植)但问题是我对facebook API参数感到困惑: 这是我的代码: var fb = new FacebookClient (accessToken); dynamic parameters = new ExpandoObject(); parameters.appId = facebookAppId; parameters.message = “This is a test!”; parameters.to=”friendID1,friendID2,…”; string request=String.Format (“/me/apprequests”); dynamic result = await fb.PostTaskAsync (request, parameters); 当我使用此代码时,Post任务正确完成,但是(检查结果变量并查看facebook)“me”用户会收到该邀请。 “to”字段似乎被忽略,“me”是唯一接收请求的人。 如果我使用 string request=String.Format (“/{0}/apprequests”,FRIEND_ID); 而不是/ me / apprequests,然后我收到以下错误: OAuthException“(#2)无法创建任何应用请求”, 我在某些地方读到访问令牌必须是App令牌,但是文档说只应在服务器执行这些请求时使用它,我想要的是用户对用户请求,而不是应用程序到用户的请求。 到目前为止,我已经看到可以通过对话请求在Android和iOS中获取它,但我没有在C#SDK中找到它们,所以我试图手动进行apprequest,没有运气。 是否可以使用Windows Phone 8或Windows 8? 怎么样? […]

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

string accessToken = GetAccessToken(); string accessKey = accessToken.Split(‘=’)[1]; var client = new FacebookClient(accessKey); dynamic me = client.Get(“me”); 这是获取访问令牌的方法,它确实返回了一个有效的访问令牌 private static string GetAccessToken() { // Create a request using a URL that can receive a post. WebRequest request = WebRequest.Create(“https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=201193246663533&client_secret=secretkeyhere”); // Set the Method property of the request to POST. request.Method = “POST”; // Create POST […]

如何在C#中为Canvas signed_request解码OAuth 2.0?

我可以使用此处的示例成功validation已签名的Facebookcanvas应用程序请求,但我无法解码有效负载。 Facebook文档声明signed_request中的第二个参数是base64url编码的JSON对象。 在PHP中,使用json_decode对有效负载进行解码: $data = json_decode(base64_url_decode($payload), true); C#中的等价物是什么?