Facebook Unity SDK测试用户登录

时间:2014-04-07 16:21:10

标签: android facebook facebook-graph-api facebook-unity-sdk

我还没有能够找到我遇到的这个问题的具体内容,所以我想我会在这里发布。

我有一个Android Unity应用程序,我正在使用Facebook SDK插件。在Unity编辑器中工作时,我可以通过他们的访问令牌与我的测试用户一起登录。但是,在将应用程序部署到Android设备时,这取决于Facebook应用程序本身是否已安装在设备上。

如果设备上安装了Facebook App,我的测试用户根本无法登录。如果我卸载Facebook App,测试用户将按预期成功登录。

是否有设置/配置更改/ API调用,我需要做些什么来解决这个问题?显然,我希望我的应用程序能够登录设备是否安装了应用程序。

非常感谢您提供任何信息

编辑:我应该澄清 - 如果安装了Facebook应用程序,当用户通过我的应用程序登录时,它 使用Facebook应用程序登录,但不会记录它们在我的应用程序中

更多的信息缩小了一些东西(我为它冗长而道歉): 一旦测试用户帐户 在我的应用程序中成功登录(没有Facebook应用程序本身安装在设备上),从那时起,测试用户帐户将登录到我的应用程序甚至更好安装了Facebook App。

情景:

  1. 测试用户" Bob"已为我的应用配置,已预先安装已配置

  2. "鲍勃"每次都会通过Unity编辑器使用令牌登录,问题仅在设备上

  3. 平板电脑已安装Facebook应用

  4. 在设备上运行我的应用,尝试使用" Bob"

  5. 登录
  6. Facebook App登录对话框已实例化以进行登录。

  7. 弹出应用程序授权对话框,单击“确定”以批准它

  8. 我的应用程序返回主场景,但是" Bob"未登录

  9. 打开Facebook应用程序,找到" Bob"登录Facebook App就好了

  10. 从设备上卸载Facebook App

  11. 运行我的应用程序(清除数据后),尝试记录" Bob"再次

  12. 实例化较小的Facebook登录对话框,然后是auth对话框

  13. "鲍勃"登录我的应用程序就好了

  14. 现在 - 这是我发现的其他内容。继续这种情况 - 一旦我通过我的应用程序第一次成功登录测试用户帐户,我可以重新安装Facebook应用程序,它将不会再次登录。一旦他使用我的应用程序登录过一次,从那时起他就会好起来的。但是,如果在尝试登录并首次批准应用程序时安装了Facebook应用程序,则会失败。

    根据要求,这是登录尝试失败的logcat。肯定会出现几个问题,一个权限异常,也许它会彻底解决导致一切都失败的问题。我不确定为什么会出现权限问题,因为我只发送电子邮件和publish_actions请求,就像在示例中一样。最后,调用我的OnInitCallback,指示登录被取消(即使出现授权对话框并单击了OK)。当事情爆发时,也许这种FB能够雄辩地退出吗?不确定。无论如何,我仍然无法解决这种情况发生的原因和原因。也许我不应该担心它,只是希望并祈祷发布版本和实际用户能够连接好吗?

    W/fb4a(:<default>):BlueServiceQueue(28412): Exception during service
    
    W/fb4a(:<default>):BlueServiceQueue(28412): com.facebook.http.protocol.ApiExcept
    ion: The app cannot ask for publish or manage permissions along with read permis
    sions.
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.http.protocol.Ap
    iResponseChecker.b(ApiResponseChecker.java:83)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.http.protocol.Ap
    iResponseChecker.a(ApiResponseChecker.java:162)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.http.protocol.Ap
    iResponse.g(ApiResponse.java:151)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.platform.auth.se
    rver.AuthorizeAppMethod.a(AuthorizeAppMethod.java:275)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.platform.auth.se
    rver.AuthorizeAppMethod.a(AuthorizeAppMethod.java:31)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.http.protocol.Ap
    iResponseHandler.a(ApiResponseHandler.java:55)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.http.protocol.Ap
    iResponseHandler.handleResponse(ApiResponseHandler.java:28)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.http.common.FbHt
    tpRequestProcessor.a(FbHttpRequestProcessor.java:314)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.http.common.FbHt
    tpRequestProcessor.a(FbHttpRequestProcessor.java:144)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.http.common.FbHt
    tpRequestProcessor.b(FbHttpRequestProcessor.java:100)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.http.common.FbHt
    tpRequestProcessor.a(FbHttpRequestProcessor.java:230)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.http.protocol.Si
    ngleMethodRunnerImpl.a(SingleMethodRunnerImpl.java:402)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.http.protocol.Si
    ngleMethodRunnerImpl.a(SingleMethodRunnerImpl.java:164)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.http.protocol.Ab
    stractSingleMethodRunner.a(AbstractSingleMethodRunner.java:18)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.platform.common.
    server.SimplePlatformOperation.a(SimplePlatformOperation.java:40)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.platform.common.
    server.PlatformOperationHandler.a(PlatformOperationHandler.java:60)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.fbservice.servic
    e.BlueServiceQueue.e(BlueServiceQueue.java:329)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.fbservice.servic
    e.BlueServiceQueue.d(BlueServiceQueue.java:55)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.fbservice.servic
    e.BlueServiceQueue$3.run(BlueServiceQueue.java:258)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at java.util.concurrent.Executor
    s$RunnableAdapter.call(Executors.java:422)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at java.util.concurrent.FutureTa
    sk.run(FutureTask.java:237)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at com.facebook.common.executors
    .ListenableScheduledFutureImpl.run(ListenableScheduledFutureImpl.java:59)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at android.os.Handler.handleCall
    back(Handler.java:733)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at android.os.Handler.dispatchMe
    ssage(Handler.java:95)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at android.os.Looper.loop(Looper
    .java:136)
    
    W/fb4a(:<default>):BlueServiceQueue(28412):     at android.os.HandlerThread.run(
    HandlerThread.java:61)
    
    W/fb4a(:<default>):GDPDialog(28412): Failed to send
    
    W/fb4a(:<default>):GDPDialog(28412): com.facebook.fbservice.service.ServiceExcep
    tion: API_ERROR: API_ERROR
    
    W/fb4a(:<default>):GDPDialog(28412):    at com.facebook.fbservice.ops.BlueServic
    eOperation.c(BlueServiceOperation.java:639)
    
    W/fb4a(:<default>):GDPDialog(28412):    at com.facebook.fbservice.ops.BlueServic
    eOperation.c(BlueServiceOperation.java:47)
    
    W/fb4a(:<default>):GDPDialog(28412):    at com.facebook.fbservice.ops.BlueServic
    eOperation$2.run(BlueServiceOperation.java:604)
    
    W/fb4a(:<default>):GDPDialog(28412):    at android.os.Handler.handleCallback(Han
    dler.java:733)
    
    W/fb4a(:<default>):GDPDialog(28412):    at android.os.Handler.dispatchMessage(Ha
    ndler.java:95)
    
    W/fb4a(:<default>):GDPDialog(28412):    at android.os.Looper.loop(Looper.java:13
    6)
    
    W/fb4a(:<default>):GDPDialog(28412):    at android.app.ActivityThread.main(Activ
    ityThread.java:5017)
    
    W/fb4a(:<default>):GDPDialog(28412):    at java.lang.reflect.Method.invokeNative
    (Native Method)
    
    W/fb4a(:<default>):GDPDialog(28412):    at java.lang.reflect.Method.invoke(Metho
    d.java:515)
    
    W/fb4a(:<default>):GDPDialog(28412):    at com.android.internal.os.ZygoteInit$Me
    thodAndArgsCaller.run(ZygoteInit.java:779)
    
    W/fb4a(:<default>):GDPDialog(28412):    at com.android.internal.os.ZygoteInit.ma
    in(ZygoteInit.java:595)
    
    W/fb4a(:<default>):GDPDialog(28412):    at dalvik.system.NativeStart.main(Native
     Method)
    
    V/FBUnitySDK(30488): sending to Unity OnLoginComplete({"cancelled":true,"key_has
    h":"(my keyhash was here)"})
    

1 个答案:

答案 0 :(得分:3)

我们让测试用户在安装了FB应用程序的Android上登录我们的Unity应用程序(sdk 5.0.4)。

FB.Login(&#34; email,publish_actions&#34;,callback)

如果您有不同的范围,请尝试删除一些,因为日志中的异常表明存在问题。从Facebook文档中,应该单独进行只读和发布权限: https://developers.facebook.com/docs/facebook-login/permissions/#publishing

一旦用户登录一次,登录/验证就会在FB.Init()中进行,因此会采用不同的代码路径。