2016-06-02 14 views
0

thisリンクを参照すると、私は自分のアプリケーションにuber sdkを統合しました。私は自分のクライアントIDとクライアントの秘密を持つuber開発者サイトに自分のアプリケーションを登録しました。 UBER SDK androidでユーザーを認証する方法は?

は、私のアプリケーションクラスに以下のコードを追加しました:

UberSdk.initialize(this, "MY_CLIENT_ID"); 

UberSdk.setRedirectUri( "MY_REDIRECT_URI");

UberSdk.setSandboxMode(true);

はその後、私のフラグメントに:

のOnCreate():

accessTokenManager = new AccessTokenManager(getContext()); 
    loginManager = new LoginManager(accessTokenManager); 
    List<Scope> scopes = new ArrayList<Scope>(); 
    scopes.add(Scope.PROFILE); 
    scopes.add(Scope.RIDE_WIDGETS); 

    Date expirationTime = new Date(System.currentTimeMillis()); 
    String token = "Token"; 
    AccessToken accessToken = new AccessToken(expirationTime, scopes, token); 

    accessTokenManager.setAccessToken(accessToken); 

    Log.d("ttt", "accessToken: " + accessTokenManager.getAccessToken()); 


    loginManager.loginWithScopes(getActivity(), scopes); 

onActivityResult():

LoginCallback loginCallback = new LoginCallback() { 
    @Override 
    public void onLoginCancel() { 
     // User canceled login 
     Log.d("ttt", " User canceled login "); 
     Toast.makeText(getContext(), "User canceled login", Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onLoginError(@NonNull AuthenticationError error) { 
     // Error occurred during login 
     Log.d("ttt", "Error occurred during login"); 
     Toast.makeText(getContext(),"Error occurred during login",Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onLoginSuccess(@NonNull AccessToken accessToken) { 
     // Successful login! The AccessToken will have already been saved. 
     Log.d("ttt", "Successful login! "); 
     Toast.makeText(getContext(),"Successful login!",Toast.LENGTH_SHORT).show(); 
    } 
}; 

loginManager.onActivityResult(requestCode, resultCode, data, loginCallback); 

私は、リダイレクトURIを追加する方法を見当がつかないと私が得るところからリダイレクトuri.Andそれは実際に何が使用されている(それが何をしてまだ明確ではない多くの検索)。

私がuber rideボタンをクリックすると、loginactivityに移動し、「あなたの認証に問題がありました」というポップアップが表示されます。

ここで私が間違っていることは誰でも修正できます。

おかげさまで、よろしくお願いいたします。

答えて

2

ここでは、Oauth 2.0でリダイレクトURIが使用されていることを書いてあります。 What's a redirect URI? how does it apply to iOS app for OAuth2.0?

TLDR:アプリケーションはWeb上およびモバイルアプリケーション上に存在し、リダイレクトURIはフローが完了した後にリダイレクトされるエンドポイントです。モバイルクライアントの場合、リダイレクトURIはUber developer dashboardの「http://localhost」に簡単に設定できます。これはウェブと同じ要件ではないためです。

これをさらに簡素化することを検討していますので、今後のリリースに注目してください。

+0

ありがとうtsmith ...これらのリンクは非常に役立ちます。 –

関連する問題