我正在开发一个使用FitBit API检索用户数据的Android应用程序。然后在应用中进一步使用它们。为了完成这项工作,OAuth2用于授权。第一步是让用户同意使用特定范围内的数据。
为了完成这项工作,我使用了FitBit规定的Google自定义标签。该网址在网络浏览器中运行,当我在Android设备上测试它时,它也能用于指导用户同意页面。当我点击同意"按钮,我没有被重定向到应用程序。相反,我最终使用授权代码在callback_url页面上。但是我仍然没有得到任何回复" System.in.println()"。如何使用SYSTEM.IN中的授权代码结束我的应用程序?
以下是我最终的页面..
我将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>
答案 0 :(得分:0)
我最终使用了callback_uri“niels:// fitbitcallback”。 Android Studio使用http://或https://令人困惑。这不适合我。最重要的是,我使用了一个额外的活动来重定向用户。还相应地调整了Android Manifest。