我有一個叫做Cloud Endpoints後端服務的Android應用程序(遊戲)。該應用程序可讓您使用Facebook,Google,Twitter或自定義遊戲帳戶「登錄」。這提取他們的電子郵件,我在後端使用它來查找字符。如何在沒有用戶Google登錄的情況下在Android上致電Google Cloud Endpoints?
我的遊戲的iOS版本使用生成的客戶端庫調用我的Cloud Endpoints服務,其中一些應用程序憑據由Cloud Endpoints設置過程提供。用戶無需登錄Google帳戶即可進行這些通話 - 他們可以登錄到Facebook或在某些情況下(例如查看排行榜)登錄。不知何故,雲終端客戶端存根使用我的應用程序的憑據來授權我的應用程序。
對於Android,設置似乎要求具有非空帳戶名的GoogleAccountCredential。據我所知,這意味着用戶必須通過(Google)登錄流程。這不利於讓他們用Facebook登錄的目的。
我的服務存根初始化看起來是這樣的:
myAudience = "server:client_id:" + getStringResource(R.string.google_webapp_client_id);
credential = GoogleAccountCredential.usingAudience(myAudience);
if (credential.getSelectedAccountName() == null) {
chooseAccount(); // Calls startActivityForResult with credential.newChooseAccountIntent().
}
myApiService = new MyApiService.Builder(AndroidHttp.newCompatibleTransport(), new AndroidJsonFactory(), credential);
這只是正常 - 但它要求用戶登錄到谷歌的帳戶,以使服務調用。
有沒有一種方法可以在不需要Google帳戶登錄的情況下從Android進行授權的Cloud Endpoints調用,就像iOS上的情況一樣?我只是想讓它使用爲我的應用程序生成的任何私有應用程序憑據,但我不知道如何以這種方式構建證書。