Tag: facebook

Facebook身份validation+负载均衡器

所以这里只有一个其他的线程,我已经找到了这个问题,不幸的是它有1个答案,0个投票。 我的问题是我目前正在维护的网站使用omniauth gem通过facebook APIvalidation新用户和现有用户。 当我们切换到使用两台服务器(使用相同数据库的相同rails应用程序)时,它打破了facebook登录。 显然我的理论是app01尝试使用facebook auth登录user1,但facebook的响应可能已通过负载均衡器到app02? 如果您对此问题有任何经验,请不要犹豫,解释您是如何解决它的。 如果我发现答案,我一定会发布我的发现。

Sinatra使用Facebook身份validation的会话

我对ruby和Sinatra很新,我有一个基本问题: 我正在尝试构建的应用程序将使用Facebook作为在应用程序中validation用户身份的唯一方法。 我想存储一个本地用户表,其中只包含facebook uid以及一些用户首选项。 我看了几个允许我对facebook API进行身份validation的gem,但是我不确定在我建立用户之后如何在我的应用程序中控制会话是有效的。 我一直在使用考拉gem与facebook交谈,我也看到过sinatra-sessiongem用于运行会话方面的事情。 一旦用户使用他们的Facebook帐户登录,有人能指出我如何管理会话的正确方向吗?

Ruby HTTP Library通过Facebook App获得Connection Reset

以下curl命令按预期工作: curl ‘https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=myappid&client_secret=myclientsecret’ 我想在我的Ruby程序中做同样的事情。 以下代码给出了一个错误: fb_access_token_url = URI.parse( ‘https://graph.facebook.com/oauth/access_token’ + ‘?grant_type=client_credentials’ + ‘&client_id=’ + FACEBOOK_APP_ID + ‘&client_secret=’ + FACEBOOK_APP_SECRET) fb_access_token = Net::HTTP.get(fb_access_token_url) 这段代码也是如此: fb_access_token_host = ‘graph.facebook.com’ fb_access_token_path_and_params = ( ‘/oauth/access_token’ + ‘?grant_type=client_credentials’ + ‘&client_id=’ + FACEBOOK_APP_ID + ‘&client_secret=’ + FACEBOOK_APP_SECRET) https_port = Net::HTTP.https_default_port() fb_access_token = Net::HTTP.get_response(fb_access_token_host, fb_access_token_path_and_params, https_port) 错误如下: Errno::ECONNRESET: Connection reset by peer /usr/lib/ruby/1.8/net/protocol.rb:135:in […]

我需要从Facebook游戏中抓取数据 – 使用ruby

修订(澄清问题) 我已经花了几天时间试图弄清楚如何从Facebook游戏中抓取特定信息; 然而,我在砖墙后遇到了砖墙。 尽我所知,主要问题如下。 我可以使用Chrome的inspect元素工具手动查找我需要的html – 它显示在iframe中。 但是,当我尝试刮取iframe时,它是空的(属性除外): 如果我使用浏览器“查看页面源”工具,这与我看到的输出相同。 我不明白为什么我看不到iframe中的数据。 答案并非后来由AJAX添加。 (我知道这两者都是因为“查看页面源代码”可以读取由Ajax添加的数据,也因为我已经等待,直到我可以在抓取之前看到数据页面并且它仍然不在那里之后。 这是因为facebook的反屏幕抓取而发生的,如果是这样的话还有办法吗? 或者我只是遗漏了一些东西。 我用ruby编程,我尝试了nokogiri,然后机械化,然后水豚没有成功。 我不知道它是否有任何区别,但在我看来,iframe使用iframe的“game_frame”引用来获取它的数据,该引用显然是指文档中较早出现的这段html: … 原始问题 我写了一个ruby程序,它使用nokogiri从Facebook游戏的HTML中抓取数据。 目前,我使用chrome的“检查元素”工具获取HTML,然后将其保存到文件中并从那里解析它。 但是,我真的希望能够从ruby中访问信息。 例如,我将程序的页面名称“www.gamename.com/…?id=12345”传递给它,它将登录到facebook,转到该页面并抓取数据。 目前,如果我尝试,它不起作用,因为我被重定向到Facebook的登录页面。 如何通过登录界面访问我需要的页面? 我想使用我已经写过的nokogiri代码来做这件事; 但是,如果我必须,我可以使用别的东西重写它。 目前,该程序是一个独立的程序 – 而不是一个rails程序 – 但我可以改变它。 我看到一些可能指向Omniauth方向的信息,但我不确定这是我在寻找什么,而且看起来也很复杂。 我希望有一个更简单的解决方案。 谢谢

使用Facebook Connect与Authlogic

我试图让Authlogic和Facebook Connect(使用Facebook)玩得很好,这样你就可以通过正常注册方式或Facebook连接创建一个帐户。 我已经能够以一种方式使连接工作,但只登出facebook上的logg而不是我的网站,我必须删除cookie才能使其正常工作。 任何帮助都会很棒,谢谢!

Facebook重定向url在ruby on rails上打开ssl错误

我跟随了omniauth devise facebook应用程序,正如Ryan在第235集中所解释的那样。用户授权后我们在http:// localhost:3000 / auth / facebook / callback?code = 13444收到错误… 以下是facebook设置:App Domain:localhost siteurl:locahost:3000 / canvas url: http:// localhost:3000 / auth / facebook / 请告诉我我哪里错了?

如何在多种环境中处理OmniAuth回调?

我有一个应用程序,它专门使用Facebook作为身份validation提供程序,并正确设置生产模式的回调。 为了实现这一点,您可以为Facebook应用程序提供站点URL和站点域以进行回调,在我的例子中,它分别是http://appname.heroku.com和appname.heroku.com 。 问题是我的控制器设置为仅允许经过身份validation的会话,因此我无法在开发模式下查看我的应用程序,因为Facebook应用程序的域显然尚未设置为localhost。 如何解决这个问题而不必在Facebook的设置中更改它?

OmniAuth Facebook过期令牌错误

我正在使用OmniAuth在我的应用程序中访问Facebook。 我正在使用fb_graph gem: https : //github.com/nov/fb_graph发布到Facebook。 我在Heroku上为这个应用程序运行omniauth-0.3.0。 创建用户时保存的令牌会在用户稍后登录时更改。 用于创建用户的代码 class SessionsController “Signed in!” end 用户模型是: def self.create_with_omniauth(auth) create! do |user| user.provider = auth[“provider”] user.uid = auth[“uid”] user.name = auth[“user_info”][“name”] user.token = auth[“credentials”][“token”] end end 我现在在大约30%的用户身上看到这个错误 – FbGraph::InvalidToken (OAuthException :: Error validating access token: Session does not match current stored session. This may be because the […]

在Ruby / Sinatra中解码Facebook签名的请求

由于Facebook贬低了新的FBML,我正在寻找一种新的方式来创建一个“揭示”标签(一个页面选项卡,向粉丝显示一个版本,向非粉丝显示另一个版本)。 Facebook已将数据添加到signed_request: 当用户在左侧菜单中选择您的应用程序时,该应用程序将接收带有一个附加参数页面的JMS数组的signed_request参数,该数组包含您的Tab所在的Facebook页面的“id”,布尔值(’ likes’)表示用户是否喜欢Page,还有一个布尔值(’admin’)表示用户是否是Page的’admin’以及用户信息数组。 我能够读取signed_request,但是我需要使用base64url解码来处理它以获得正确的JSON。 另外,我在研究中发现JSON格式不正确,因此需要在解码之前对其进行修改。 这是当前的代码(我现在只是在index.erb中打印已签名的请求): helpers do def base64_url_decode str encoded_str = str.gsub(‘-‘,’+’).gsub(‘_’,’/’) encoded_str += ‘=’ while !(encoded_str.size % 4).zero? Base64.decode64(encoded_str) end def decode_data str encoded_sig, payload = str.split(‘.’) data = ActiveSupport::JSON.decode base64_url_decode(payload) end end get ‘/’ do signed_request = params[:signed_request] @signed_request = decode_data(signed_request) erb :index end 我正在努力保持应用程序尽可能轻,避免使用完整的Facebook库,因为这不是一个完整的应用程序(只是一个选项卡),不需要用户的任何其他权限。 我也欢迎任何关于我的风扇探测方法的建议。

使用Omniauth和Rails 3在Facebook登录时在Web和触摸界面之间切换

情况: 使用Rails 3和OmniAuth,我有一个使用Facebook策略进行身份validation的应用程序。 这个应用程序的构建同样适用于Web和移动界面(ala Jquery-Mobile)。 面临的挑战是让OmniAuth向移动设备提供Facebook登录屏幕的移动版本,为桌面设备提供网络版本。 我已经破解了一个解决方案,我将其作为答案。