2016-12-08 1 views
1

Android Studio에서 실시간 API 데이터를 사용하는 첫 번째 Android 앱을 만들려고합니다. 인증하려면 Foursquare Dev에 대한 OAuth 2.0 설명을 따르세요. 먼저 사용자가 로그인하여 앱을 승인 할 수 있습니다. 권한이 부여되면 다음이 포함 http://example.com/apps/apptest/index.php에 내 서버에 PHP 파일로 리디렉션 :웹 페이지에서 Android 앱으로 돌아갈 수있는 방법은 무엇입니까?

<?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); 

?> 

문제는 지금 : 내 안드로이드 응용 프로그램을 다시 내 웹 페이지에서 얻을 수 없습니다! 내가 원하는 것은 사용자 ID 및/또는 토큰을 어떤 방식 으로든 앱에 제공하여 Foursquare API를 사용할 수있게하는 것입니다. 나는이 문제를 해결하기 위해 하루 종일 노력해 왔습니다. - 먼저 PHP 파일에 HTML 링크를 추가하여 앱으로 리디렉션했으나 작동하지 않았습니다. - 그 후에 Android에서 비동기 작업으로이 자체 작성된 "API"를 "소비"하려했으나 작동하지 않았습니다. 잘.

이제 옵션이 없어졌지만이 프로젝트를 중단하고 싶지 않으므로 다음에 시도 할 수있는 것을 말해 줄 수있는 사람이 있습니까?

미리 감사드립니다.

+0

에서보세요? –

+0

이 코드를 사용하여 권한을 부여합니다. 'Uri uri = Uri.parse ("https://foursquare.com/oauth2/authenticate?client_id=XXXXXXXX&response_type=code&redirect_uri=XXXXXXXX"); 의도 의도 = 새 의도 (Intent.ACTION_VIEW, uri); startActivity (intent); ' – ernie379

+1

당신의 질문에 대답하지 않지만, 안드로이드 용 Foursquare Oauth 라이브러리를 보셨습니까? 나는이 모든 것을 당신을 위해 처리한다고 생각합니다. https://github.com/foursquare/foursquare-android-oauth –

답변

관련 문제