OAuth2 CallBack Google自定义标签

时间:2018-03-12 10:45:38

标签: android chrome-custom-tabs

我正在开发一个使用FitBit API检索用户数据的Android应用程序。然后在应用中进一步使用它们。为了完成这项工作,OAuth2用于授权。第一步是让用户同意使用特定范围内的数据。

为了完成这项工作,我使用了FitBit规定的Google自定义标签。该网址在网络浏览器中运行,当我在Android设备上测试它时,它也能用于指导用户同意页面。当我点击同意"按钮,我没有被重定向到应用程序。相反,我最终使用授权代码在callback_url页面上。但是我仍然没有得到任何回复" System.in.println()"。如何使用SYSTEM.IN中的授权代码结束我的应用程序?

以下是我最终的页面..

enter image description here

我将redirect_url用于开发目的," http://locallhost.com/",以允许我在开发中进行测试。这在Manifest中设置为Intent Filter(见下文),我的应用程序在Fitbit API EndPoint的应用程序设置。

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

final CustomTabsIntent intent = new CustomTabsIntent.Builder().build();
    final String url = "https://www.fitbit.com/oauth2/authorize/myApplicationParameters";
    intent.launchUrl(this, Uri.parse(url));

System.out.println(in.hasNextLine());

清单

<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="locallhost.com/"
      android:scheme="http"/>
</intent-filter>

1 个答案:

答案 0 :(得分:0)

我最终使用了callback_uri“niels:// fitbitcallback”。 Android Studio使用http://或https://令人困惑。这不适合我。最重要的是,我使用了一个额外的活动来重定向用户。还相应地调整了Android Manifest。