githubで見つけたOneDrive Java APIを使用するスタンドアロンJavaアプリケーションがあります。すべてうまく動作します。Android用OneDrive SDKはサイレントモードでログインできません
は、だから私はすでにのclientid、クライアントシークレット、認証コードと完璧
仕事リフレッシュトークンは、今私は、Androidに切り替えたいと思っていたが、私は同じJava APIを使用して成功していませんでした。だからこそ私は、Microsoftが提供するOneDrive Android SDKの正式版に移行したかったのです。
すべてが異なるようです。私はすでに知られているのClientIDを使用して、以下のことを試してみました
final Activity me = this;
final MSAAuthenticator msaAuthenticator = new MSAAuthenticator() {
@Override
public String getClientId() {
return clientid;
}
@Override
public String[] getScopes() {
return new String[] { "onedrive.appfolder" };
}
};
final IClientConfig oneDriveConfig = DefaultClientConfig.createWithAuthenticator(
msaAuthenticator);
final IOneDriveClient oneDriveClient = new OneDriveClient.Builder()
.fromConfig(oneDriveConfig)
.loginAndBuildClient(me);
oneDriveClient
.getDrive()
.buildRequest()
.get(new ICallback<Drive>() {
@Override
public void success(final Drive result) {
final String msg = "Found Drive " + result.id;
Toast.makeText(me, msg, Toast.LENGTH_SHORT)
.show();
}
@Override
public void failure(ClientException ex) {
final String msg = "Error";
Toast.makeText(me, msg, Toast.LENGTH_SHORT)
.show();
}
});
logcatでライン.loginAndBuildClient(me)
を実行しながらそれは、一見無限ループで終わる、私はそれが例外を抑制していることがわかり
07-13 12:32:17.082 28175-28271/org.xxxxxxx.xxxxxxxxx E/MSAAuthenticator$5[onAuthComplete] - 314:
Failed silent login, interactive login required
com.onedrive.sdk.authentication.ClientAuthenticatorException: Failed silent login, interactive login required
at com.onedrive.sdk.authentication.MSAAuthenticator$5.onAuthComplete(MSAAuthenticator.java:312)
情報メッセージもあります:
07-13 12:32:17.079 28175-28271/org.xxxxxxx.xxxxxxxxx I/LiveAuthClient:
No refresh token available, sorry!
07-13 12:32:17.079 28175-28271/org.xxxxxxx.xxxxxxxxx I/LiveAuthClient:
All tokens expired, you need to call login() to initiate interactive logon
Obvio uslyそれはどういうわけか、対話的なログインを実行したいし、ひどく失敗します。
理解できないこと:私は既に完全に有効なリフレッシュトークンを再利用したいと思いますが、MS OneDrive SDKでこれを行う方法が見つかりませんでした。
誰かが私を助けることができますか?
ログイン時に完全なログキャストを貼り付けることはできますか? UIの表示を妨げる前にエラーが発生していない場合は、メッセージの1つとして「ログインを開始しています」と表示されることが予想されます。 –
*どのUIが表示されるべきかを知ることは既にうれしいでしょう。私はそのケースのためのUIを開発していないので、私はそれが私のアプリの外にあると期待していますか? – devnull69