2016-10-26 4 views
1

Ich baue einen REST-Client auf Android, um mit der Bitbucket-API zu kommunizieren. Ich habe ein Problem mit OAUTH2.0.Redirect_URI für Android REST-Client

  • Vom docs von Bitbucket versehen, haben Sie einen „Verbraucher“ zu schaffen, um die ClientID (Key) und Geheimnis für Ihren Android-App
  • Und in der Verbraucher Schaffung Form zu verwenden, zu erhalten, Es gibt die "Rückruf-URL" (die ich als Webseite oder Ort verstehe, die Bitbucket wird Benutzer zu nehmen, nachdem sie die Erlaubnis für die App (dh Login)
  • in meiner Android-App, die ich will das Android-Gerät um zu meiner App zurückzukehren, nachdem der Benutzer die Berechtigung erteilt hat (z. B. wie Sie sich bei einem Web anmelden ite mit Google-Konto, nach dem Einschalten der Erlaubnis Seite von Google in Ihre Anmeldeinformationen füllen, werden Sie wieder auf die ursprüngliche Seite, die Sie auf)

Die tutorial I was following implementiert dies durch

  • dies in der Hinzufügen waren genommen Aktivität, in dem die Anmeldung erfolgt in manifest.xml

<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="redirecturi" android:scheme="your" /> </intent-filter>

  • senden

    private final String redirectUri = "your://redirecturi"; 
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_login); 
        Button loginButton = (Button) findViewById(R.id.loginbutton); 
        loginButton.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          Intent intent = new Intent(
            Intent.ACTION_VIEW, 
            //Uri.parse("" + "/login" + "?client_id=" + clientId + "&redirect_uri=" + redirectUri)); 
            Uri.parse("https://bitbucket.org/site/oauth2/authorize" + "?client_id=" + clientId + "&redirect_uri=" + redirectUri)); 
          startActivity(intent); 
         } 
        }); 
    } 
    

Meine Frage ist Bitbucket: - Wie Config ich die Umleitung URI oder Callback-URL auf Bitbucket Verbraucher Objekt und in Wunsch meiner App sicher, die Android zu machen Gerät geht zurück zu meiner App und so kann meine App Antworten von Bitbucket (und diese Antwort sollte das Access_Token, das ich brauche) haben.

Antwort

1

Eine einfache Möglichkeit, dies zu bewerkstelligen, ist die Verwendung eines WebView, anstatt Ihren OAuth-Link durch eine Absicht zu öffnen. Sie können die URL tatsächlich überprüfen, wenn Sie in einem WebView umgeleitet werden. Um dies zu tun, müssen Sie

public boolean shouldOverrideUrlLoading (WebView Ansicht, String url)

außer Kraft setzen, wenn Sie auf einen anderen Link weitergeleitet werden (oder Ihr Rückruf uri in diesem Fall) können Sie überprüfen, oder vergleichen die URL erhalten und entsprechend verfahren.

+0

Vielen Dank. Können Sie mir bitte zeigen, wie ich das in meinem speziellen Fall umsetzen könnte? –

+0

Schauen Sie sich ein Beispiel an [link] (http://techblog.constantcontact.com/software-development/implementing-oauth2-0-in-android-app/) – Jordan

+0

in diesem ersten wird das oauth token geholt mit einem Webview und dann wird es verwendet, um Anfragen an die API und ist in den gemeinsamen Preferences – Jordan

Verwandte Themen