Facebook连接移动应用程序

时间:2011-06-21 16:46:40

标签: ruby-on-rails-3 facebook rhomobile

编辑 - 言归正传。需要为我的回调网址设置端口号。

即。 http://127.0.0.1:1234

问题在于端口是动态的并且在不断变化。有没有人遇到过这个?


使用rhomobile。需要一些帮助才能更好地理解facebook oauth2的工作原理。

当用户第一次启动应用时,想用facebook连接获取用户信息,并在用户评论时发布到墙上。

假设我可以执行以下操作:

在我的控制器中有一个调用Action的按钮。 - > Action将WebView启动到FB mobile进行身份验证 - >用户在FB上输入凭据 - >在redirect_uri_controller上获取auth_code,我使用另一个redirect_url执行AsyncHttp.get请求令牌 - >登陆redirect_url& auth_token存储。

现在,有一个调用下面控制器的按钮

def fb_initiate_connect
  call_back_url = url_for(:controller => "Settings", :action => :fb_initiate_connect_callback)
  url = "http://www.facebook.com/dialog/oauth?client_id=#{fb_app_id}&redirect_uri=#{call_back_url}&scope=email,read_stream,publish_stream&display=touch"
  WebView.navigate(url)
end

这会在我的应用中启动UIWebview,转到FB移动网站但收到“APP_NAME发生错误。请稍后重试。”

认为它是因为没有设置/找到cookie?这里的所有内容都是手动的,所以必须做WebView.execute_js("document.cookie=WHAT?;")之类的事情但是我把它放在我的call_back_url或fb_initiate_connect中吗?

1 个答案:

答案 0 :(得分:0)

是的,Rhodes动态配置端口,因为指定显式端口可能会与另一个Rhodes应用程序或设备上的任何其他设备在设备上使用的另一个端口冲突。

您可以使用以下属性强制在RhoConfig.txt中运行应用程序的端口:

local_server_port = 8080

但是,最好的解决方案是通过以下方式获取动态服务器端口:

System.get_property('rhodes_port')