我正在尝试在Android Studio中创建我的第一个Android应用程序,它将使用实时API数据。 要进行身份验证,我正在关注Foursquare Dev上的OAuth 2.0说明。 首先,这允许用户登录并授权应用程序。授权后,它会重定向到http://example.com/apps/apptest/index.php上我的服务器上的php文件,其中包含以下内容:
<?php
//INIT
header('Content-Type: application/json');
$response = array();
//AUTH
ini_set("allow_url_fopen", 1);
$clientId = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$clientSecret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$redirectUrl = urlencode("http://example.com/apps/apptest/index.php");
$code = htmlspecialchars($_GET["code"]);
$url = "https://foursquare.com/oauth2/access_token?client_id=";
$url .= $clientId;
$url .= "&client_secret=";
$url .= $clientSecret;
$url .= "&grant_type=authorization_code&redirect_uri=";
$url .= $redirectUrl;
$url .= "&code=";
$url .= $code;
$json = file_get_contents($url);
$obj = json_decode($json);
$access_token = $obj->access_token;
$url2 = "https://api.foursquare.com/v2/users/self?oauth_token=" . $access_token . "&v=" . date("Ymd");
$json2 = file_get_contents($url2);
$obj2 = json_decode($json2, true);
$userId = $obj2['response']['user']['id'];
// some mysql things I skipped in this code snippet
if (success) {
$response["success"] = 1;
$response["message"] = $access_token;
}
else {
$response["success"] = 0;
$response["message"] = "ERROR";
}
echo json_encode($response);
?>
现在的问题是:我无法从我的网页回到我的Android应用程序! 我想要的是以某种方式给予应用程序的用户ID和/或令牌,以便我可以使用foursquare API! 我一整天都在努力解决这个问题。 - 首先我试图在php文件中放一个html链接重定向回应用程序,但没有用 - 然后我尝试在Android中使用异步任务“消费”这个自编“API”,但效果不佳。
现在我用完了选项,但我不想停止这个项目,所以有谁能告诉我接下来会尝试什么?
提前致谢!
答案 0 :(得分:0)
我认为深层链接可以解决您的问题。
查看https://developer.android.com/training/app-indexing/deep-linking.html