簡體   English   中英

登錄Unity Android應用程序上的Facebook API,登錄是否被“播放器取消”?

[英]Facebook API on Unity Android app, login says it was “cancelled by the Player”?

我正在嘗試遵循以下示例:

https://developers.facebook.com/docs/unity/getting-started/android/

我正在使用Unity 4.3.1f1

使用ADT:adt-bundle-windows-x86_64-20131030

並使用Facebook API版本4.3.6統一。

我正確地遵循了示例,我在developers.facebook.com上創建了應用程序,並使用了與項目相同的顯示名稱和名稱空間。 我還使用了Facebook設置內部統一給我的值(包名稱,類名和鍵哈希值),api給我的鍵哈希值正確放置在facebook頁面上,並使用以下命令:

"keytool -exportcert -alias androiddebugkey -keystore "C:\\Users\\Rafael\\.android\\debug.keystore" | openssl sha1 -binary | openssl base64"

還會給我相同的密鑰哈希,所以我相信一切都很好。

構建APK時,我會正確選擇debug.keystore並輸入正確的密碼。

當運行InteractiveConsole演示時,按Init可以正常工作,但是按Login后,它要求許可,我按OK,登錄不起作用,它說它已被Player取消 ,登錄根本不起作用,並且不執行此操作。告訴我為什么,有什么想法嗎?

因此,回答我自己的問題后,發現密鑰哈希是錯誤的,我修改了Facebook API文件AndroidFacebook.cs,並通過更改此方法使它記錄了所使用的密鑰哈希:

public void OnLoginComplete(string message) 
{ 
   ... 
   if (parameters.ContainsKey("key_hash")) 
   { 
       keyHash = (string)parameters["key_hash"]; 
       Debug.Log("proper keyhash : " + keyHash); 
   } 
   ... 
 }

而且記錄的密鑰哈希與其他所有方法給我的(包括API自己的知悉密鑰)不同,我在facebook頁面上添加了正確的密鑰,現在一切正常。

我的解決方案是:

  1. 獲取指紋SHA1(keytool -printcert -file CERT.RSA)
  2. 復制SHA1十六進制並將該代碼轉換為Base 64( http://tomeko.net/online_tools/hex_to_base64.php
  3. 您應該在facebook應用程序配置的Android密鑰哈希中的base 64中復制指紋。

僅此而已,效果非常好!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM