我无法找到与该问题有关的任何内容,因此我想将其发布在此处。

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

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

是否需要进行设置/配置更改/ API调用才能解决此问题?显然,我希望我的应用程序能够登录该设备是否已安装该应用程序。

非常感谢您的任何信息

编辑:我应该澄清-如果已安装Facebook应用程序,则当用户通过我的应用程序登录时,它确实使用Facebook App登录了它们,但没有在我的应用程序中登录过它们

一些更多信息可以缩小范围(我很冗长),我对此表示歉意:
一旦测试用户帐户成功登录到我的应用程序中(设备上未安装Facebook App本身),此后,即使安装了Facebook App,测试用户帐户也可以正常登录我的应用程序。

场景:


已为我的应用配置了测试用户“ Bob”,并已对其进行了预安装
每次“ Bob”都会通过Unity编辑器使用令牌登录,仅在设备上存在问题
平板电脑安装了Facebook App
在设备上运行我的应用,尝试使用“ Bob”登录
实例化Facebook App登录对话框以进行登录。
弹出“应用授权”对话框,单击“确定”批准
我的应用返回到主场景,但是“ Bob”未登录
打开Facebook App,然后发现“ Bob”已登录Facebook App
从设备上卸载Facebook App
运行我的应用程序(清除数据后),尝试再次登录“ Bob”
实例化较小的Facebook登录对话框,然后是身份验证对话框
“鲍勃”可以很好地登录我的应用


现在-这是我发现的其他东西。在这种情况下-一旦我通过我的应用程序第一次成功登录了测试用户帐户,就可以重新安装Facebook App,并且对再次登录没有影响。使用我的应用程序登录一次后,从那时起他就可以了。但是,如果在首次尝试登录和批准该应用程序时安装了Facebook App,则它将失败。

根据要求,这是登录尝试失败的日志。肯定有几个问题,一个权限异常马上就出现了,也许它不断扩散导致一切失败。我不确定为什么为什么会出现权限问题,因为我只发送电子邮件和publish_actions请求,就像示例中一样。最后,将调用我的OnInitCallback,并显示已取消登录(即使出现授权对话框并单击“确定”)。也许这是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)"})

最佳答案

我们已经测试了安装了FB应用程序(sdk 5.0.4)的Android用户登录到我们的统一应用程序。

FB.Login(“ email,publish_actions”,回调)

如果范围不同,请尝试删除某些范围,因为日志中的异常表明是问题所在。从Facebook文档中,只读权限和发布权限应分别设置:
https://developers.facebook.com/docs/facebook-login/permissions/#publishing

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

关于android - Facebook Unity SDK测试用户登录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22917834/

10-08 23:44