Tag: facebook

应该如何在服务器端使用Facebook用户访问令牌?

前言 我正在开发几个Web服务和一些客户端(Web应用程序,手机等),这些客户端将通过HTTP与所述服务进行接口。 我目前的工作是为产品devise一个authentication和授权解决scheme。 我已决定利用Facebook,Google,Microsoft,Twitter等外部身份提供商进行身份validation。 我试图解决这个问题,“当请求到达我的服务器时,我怎么知道用户是谁,我怎么能确定?”。 下面还有更多的问题 要求 依靠外部身份来表明我正在处理的是谁(“userId”本质上就是我所关心的)。 系统应该使用基于令牌的authentication(而不是cookie,例如基本authentication)。 我相信这是跨多个客户端和服务器进行扩展,同时提供松散耦合的正确select。 工作stream程 基于我对基于令牌的身份validation的阅读和理解,以下是我如何想象工作stream程。 现在让我们在网页浏览器上关注Facebook 。 我的假设是,其他外部身份提供者应该有类似的能力,虽然我还没有确认。 请注意,截至撰写时,我将基于Facebooklogin版本2.2以下 客户端:使用JavaScript SDK启动Facebook的login Facebook:用户authentication和批准应用程序权限(例如访问用户的公开个人资料) Facebook:向包含用户的访问令牌,ID和签名请求的客户端发送响应 客户端:在浏览器会话中存储用户访问令牌( 方便地由SDK处理 ) 客户端:通过在授权标头中发送用户的访问令牌+用户的标识(潜在地在自定义标头中)向我的Web服务请求安全资源, 服务器:从请求头读取用户访问令牌,并通过向Facebook提供的debug_tokengraphicsAPI发送请求来启动validation Facebook:使用用户访问令牌信息(包含appId和userId)回应服务器 服务器:通过比较appId与预期(本身已知)和userId与客户端请求上发送的内容的比较来完成令牌的validation 服务器:用请求的资源响应客户端(假定愉快的授权path) 我想象的步骤5-9将重复随后的请求到服务器(而用户的访问令牌是有效的 – 没有过期,从FB侧撤销,应用程序权限改变等) 以下是帮助您完成步骤的图表。 请理解这个系统不是一个单一的页面应用程序(SPA)。 提到的Web服务是API端点,将JSON数据本质上提供给客户端; 他们不提供HTML / JS / CSS(除了Web客户端服务器)。 问题 首先,根据我的序言和要求,有没有明显的差距/陷阱? 正在执行一个出站请求到Facebookvalidation访问令牌(上面的步骤6-8) 每客户端请求 /推荐? 我至less知道,我必须validation来自客户端请求的访问令牌。 但是,第一个后续validation的推荐方法对我来说是未知的。 如果有典型的模式,我有兴趣听到它们。 根据我的要求,我明白他们可能是依赖于应用程序; 然而,我只是不知道该找什么。 一旦我有一个基本的想法,我会尽职尽责。 例如,可能的想法: 首次validation完成后,将访问令牌+ userId对散列,并将其存储在分布式caching中(所有Web服务器均可访问),并且有效期等于访问令牌。 在随后来自客户端的请求中,对访问令牌+用户ID对进行散列并检查其在caching中的存在。 如果存在,则请求被授权。 […]

Facebook的开放graphics错误 – 推断的属性

我试图在我的产品页面上实现Facebook的OpenGRaph协议。 在每一页上,我都有这个头部分上面: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml"> 然后在头部我有: <meta property="og:title" content="This Page Title"/> <meta property="og:type" content="product"/> <meta property="og:url" content="http://www.mywebaddress.com"/> <meta property="og:image" content="http://www.myimage.jpg"/> <meta property="og:site_name" content="My Site Name"/> <meta property="fb:admins" content="10101010101"/> <meta property="og:email" content="hello@mywebaddress.com"/> <meta property="og:description" content="Description of my product."/> 然后我有一个这样的代码“喜欢”button: <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id […]

新的Facebook像buttonHTMLvalidation

在我的页面上添加新的Facebook likebutton后,不再使用XHTML严格标准进行validation。 我遇到的两个错误是: 所有的元属性标签都说没有属性属性 , 所有在类似的button行中使用的variables被列出,没有它的属性。 线路如下: <fb:like href="http://www.pampamanta.org" layout="button_count" show_faces="false" width="120" action="like" font="arial" colorscheme="light"></fb:like>

Facebook SDK 3.1 – validation访问令牌时出错

我试图将我的应用程序转换到新的Facebook SDK 3.1(支持iOS6身份validation)。 我工作得很好,于是我决定从FB网站的授权应用程序列表中删除应用程序,以testingiOS会再次请求许可。 现在我第一次调用[FBRequest requestForMe]会导致这个错误: 响应: { "error": { "message": "Error validating access token: Session does not match current stored session. This may be because the user changed the password since the time the session was created or Facebook has changed the session for security reasons.", "type":"OAuthException", "code":190, "error_subcode":460 } } 一些细节: 我试图打开会议如下: [FBSession […]

我是新的如何让我的应用程序生活在FB上

我想我有一切权利,但我的应用程序不活。 它说:“这个应用程序是在开发模式”我想这就是他们曾经称为沙箱模式,但我不知道从哪里开发模式。 有人可以请帮助我在此先感谢

自定义Facebookloginbutton – Android

我正在学习这个教程,但是到目前为止,我还是无法工作,尽pipe这是一年前的事情。 我正在使用androidStudo 1.2.2和FacebookSDK 4。 我想用一个自定义button简单地login到Facebook,就像这个图像中显示的那样: 现在,在教程的例子中,我遇到了Sessionvariables的问题,它说它无法解决它,既getActivity() 有没有人在FacebookSDK4.0上试过这个? 这是一个正确的方法,或者有更多的更新? 提前致谢!

通过Facebook发送消息聊天API(XMPP)C#

////////////////////////////////////////////////// //////////////////////////////////////////////// // OBSERVE https://developers.facebook.com/docs/chat/ 本文档涵盖的服务和API已随Platform API v2.0的发布而被弃用。 一旦版本1.0被弃用,chat.facebook.com将不再可用。 //阅读这篇文章,你可能想做一些与这个问题完全不同的东西。 ////////////////////////////////////////////////// ////////////////////////////////////// 我正在创build一个与WebForms C#连接到Facebook Chat API的聊天工具。 我也看过这个问题 (和所有的链接)。 由于Facebook现在需要auth_token某些部分不再相关。 要复制这个,你应该build立一个Facebook的networking应用程序,使用appId和用户帐户与xmpp_login权限设置。 然后创build一个带有代码的Chat.aspx ,并相应地粘贴这个代码。 并replace硬编码的用户进行交互。 我有两个(也许是三个)问题,我相信阻止我成功发送聊天消息。 在文档中logging为// finishes auth process与文档描述不匹配(在收到来自Facebook的基于SSL / TLS的成功消息后,我没有收到任何响应。) 我不知道如何设置“发送聊天消息”部分,因为我没有收到任何来自Facebook的消息,所以很难说出可能的错误。 这是我的完整的代码,在PasteBin上 。 我也有一些助手添加xmpp_login权限等。删除为清晰起见。 全局variables: public partial class Chat : Page { public TcpClient client = new TcpClient(); NetworkStream stream; private SslStream ssl; private string […]

如何使用Facebook PHP SDK 3.0正确处理会话和访问令牌?

在PHP 3.0 SDK中,没有getSession()或者Facebook API以外的任何会话处理。 根据这个博客条目和这个错误报告 ,几天前Facebook的开发者也不知何故更新了JavaScript sdk。 在过去的几天里,一个更改被引入到托pipe的JS SDK中,打破了它与当前PHP SDK(2.x和3.x)之间的所有兼容性。 在他们的网站上使用JS和PHP SDK的开发人员可能会看到服务器端API失败。 但是,我不知道这是否真的影响我的问题。 就像在这个问题的答案一样,我正在使用PHP检索OAuth对话框的访问令牌,并将新访问令牌保存在会话中。 目前的解决方法 以下代码显示了我如何处理这个会话。 $_REQUEST['session']是OAuth对话框的响应内容。 if(isset($_REQUEST['session'])) { $response = json_decode(stripslashes($_REQUEST['session']), true); if(isset($response['access_token'])) { $this->api->setAccessToken($response['access_token']); $_SESSION['access_token'] = $this->api->getAccessToken(); } } elseif(isset($_SESSION['access_token']) && ! isset($_REQUEST['signed_request'])) $this->api->setAccessToken($_SESSION['access_token']); elseif(isset($_REQUEST['signed_request'])) { Session::invalidate('fbuser'); $_SESSION['access_token'] = ''; } 以下是我如何处理用户数据: try { $this->user = Session::getVar('fbuser'); if ($this->user === false || is_null($this->user)) […]

validation用户使用omniauth和Facebook的轨道API?

我构build了一个Rails API,并成功构build了一个用户使用Omniauth Identity进行身份validation的方法。 我们只需从客户端发送auth / identity / callback,传入一个auth_key和密码。 服务器然后返回一个守门员令牌,然后用户从此使用门禁令牌来访问应用程序并识别他们自己。 这张图解释了这一点: 我们现在希望从客户端实现Facebooklogin,但在理论和实践上都难以实现。 在一个带有Omniauth Identity的简单Rails应用程序中,您只需调用auth / facebook,但是如果我们在客户端中放置了一个链接,就会调用服务器,然后服务器就会logging: INFO — omniauth: (facebook) Request phase initiated. 该应用程序在Facebook中设置正确的ID和秘密,所以也许login提示返回到服务器? 虽然链接authentication,我感到困惑。 任何帮助感激地感谢!

响应宽度Facebook页面插件

Facebook推出了一个新的页面插件来取代Like框插件。 文档: https : //developers.facebook.com/docs/plugins/page-plugin/ 我用这个新的插件replace了Like Box插件。 在一些网站上,我使用这个CSS代码来使插件在一个元素中响应: .fb-like-box, .fb-like-box span, .fb-like-box span iframe[style] {width: 100% !important;} replace这个代码doet不工作: .fb-page, .fb-page span, .fb-page span iframe[style] {width: 100% !important;} 我的页面插件代码如下所示(不提供数据宽度属性): <div class="fb-page" data-href="https://www.facebook.com/MyFacebookPage" data-height="1200" data-hide-cover="false" data-show-facepile="true" data-show-posts="true"></div> 看起来Facebook已经在iframe加载的DOM中添加了一个带有内联样式元素的div元素: <div style="min-width: 280px; width: 340px;" id="u_0_0"> …content of the plugin… </div> 当我将这个宽度调整到100%时,除封面照片外,每个元素都以全宽alignment。 有可能给这个新的页面插件一个响应行为就像Like框插件?