1

编辑 - 更接近。我的回调 url 需要一个端口号。

http://127.0.0.1:1234

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


与 rhomobile 一起工作。需要一些帮助来更好地理解 facebook oauth2 的工作原理。

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

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

在我的控制器中有一个调用 Action 的按钮。-> 操作将 WebView 启动到 FB 移动设备以进行身份​​验证 -> 用户在 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 中吗?

4

1 回答 1

0

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

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

local_server_port = 8080

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

System.get_property('rhodes_port') 
于 2011-06-24T15:22:34.520 回答