使用 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 端点。