使用 Instagram OAuth 的回调 URL 示例

OAuth 的一个用例是回调网址。让我们通过 Instagram 登录来执行此操作:如果用户输入其凭据并单击“ 登录” 按钮,Instagram 将验证凭据并返回 access_token。我们需要在我们的应用程序中使用 access_token

为了使我们的应用能够收听此类链接,我们需要向 Activity 添加回调网址。我们可以通过向 Activity 添加 <intent-filter/> 来实现这一点,Activity 将对该回调 URL 做出反应。假设我们的回调网址是 appSchema://appName.com。然后,你必须在 Manifest.xml 文件中将以下行添加到所需的 Activity

<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="appName.com" android:scheme="appSchema"/> 

上面的行说明:

  • <category android:name="android.intent.category.BROWSABLE"/> 使目标活动允许自己由 Web 浏览器启动,以显示链接引用的数据。
  • <data android:host="appName.com" android:scheme="appSchema"/> 指定我们的回调 URL 的架构和主机。
  • 总而言之,只要在浏览器中调用回调 URL,这些行就会导致特定的 Activity 被打开。

现在,为了获取 Activity 中 URL 的内容,你需要覆盖 onResume() 方法,如下所示:

@Override 
public void onResume() { 
    // The following line will return "appSchema://appName.com".
    String CALLBACK_URL = getResources().getString(R.string.insta_callback);
    Uri uri = getIntent().getData();
    if (uri != null && uri.toString().startsWith(CALLBACK_URL)) {
        String access_token = uri.getQueryParameter("access_token");
    }
    // Perform other operations here.
} 

现在你已经从 Instagram 中检索了 access_token,它用于 Instagram 的各种 API 端点。