我还没有能够找到我遇到的这个问题的具体内容,所以我想我会在这里发布。
我有一个Android Unity应用程序,我正在使用Facebook SDK插件。在Unity编辑器中工作时,我可以通过他们的访问令牌与我的测试用户一起登录。但是,在将应用程序部署到Android设备时,这取决于Facebook应用程序本身是否已安装在设备上。
如果设备上安装了Facebook App,我的测试用户根本无法登录。如果我卸载Facebook App,测试用户将按预期成功登录。
是否有设置/配置更改/ API调用,我需要做些什么来解决这个问题?显然,我希望我的应用程序能够登录设备是否安装了应用程序。
非常感谢您提供任何信息
编辑:我应该澄清 - 如果安装了Facebook应用程序,当用户通过我的应用程序登录时,它 使用Facebook应用程序登录,但不会记录它们在我的应用程序中
更多的信息缩小了一些东西(我为它冗长而道歉): 一旦测试用户帐户 在我的应用程序中成功登录(没有Facebook应用程序本身安装在设备上),从那时起,测试用户帐户将登录到我的应用程序甚至更好安装了Facebook App。
情景:
测试用户" Bob"已为我的应用配置,已预先安装已配置
"鲍勃"每次都会通过Unity编辑器使用令牌登录,问题仅在设备上
平板电脑已安装Facebook应用
在设备上运行我的应用,尝试使用" Bob"
Facebook App登录对话框已实例化以进行登录。
弹出应用程序授权对话框,单击“确定”以批准它
我的应用程序返回主场景,但是" Bob"未登录
打开Facebook应用程序,找到" Bob"登录Facebook App就好了
从设备上卸载Facebook App
运行我的应用程序(清除数据后),尝试记录" Bob"再次
实例化较小的Facebook登录对话框,然后是auth对话框
"鲍勃"登录我的应用程序就好了
现在 - 这是我发现的其他内容。继续这种情况 - 一旦我通过我的应用程序第一次成功登录测试用户帐户,我可以重新安装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)"})
答案 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()中进行,因此会采用不同的代码路径。