2012-06-09 2 views
1

PhoneGap을 배우고 Andorid를 위해 작은 응용 프로그램을 만들려고합니다. 내 응용 프로그램은 FourSquare API에서 인근 식당을 찾아 내야합니다.OAuth in PhoneGap

내가 할 수있는 다양한 방법에는 어떤 것이 있습니까?

FourSqaure의 설명서를 이해하지 못했습니다. OAuth 메커니즘이 필요합니다. PhoneGap 응용 프로그램에서이를 수행하려면 어떻게해야합니까? 리디렉션 URI가 없습니다.

다른 사람이 어떤 방법으로이를 수행 할 수 있는지 알려주는 것이 매우 도움이 될 것입니다.

답변

2

당신이 ChildBrowser 플러그인을 사용하여 시도 유무 : 여기 스크 + 안드로이드 + 포 스퀘어와 그들이 작업을 보여 예제 파일은? (https://github.com/phonegap/phonegap-plugins/tree/master/Android/ChildBrowser) 나는 트위터에 대해 그것을 사용하고 인증을 위해 작동하는 것 같았다. 하지만 비밀 OAuth 키를 쉽게 액세스 할 수있는 형식으로 저장해야하는 문제가 있습니다.

+0

예를 사용하고 있습니다. 나는 그것을했고 나는 성공했다. ChildBrowser는 OAuth 인증을 수행하는 가장 좋은 방법입니다. – Siddharth

0

나는 이달 초 같은 문제로 어려움을 겪고있었습니다. Android에서 맞춤식 RESTful 서비스를 사용하기위한 좋은 방법을 찾고있었습니다. 필자는 Scribe (https://github.com/fernandezpablo85/scribe-java)라는 이름의이 라이브러리를 발견했습니다. 그것은 안드로이드와 정말 잘 작동합니다. 더 나은 것은 아직 Foursquare OAuth가 내장되어 있습니다!

package org.scribe.examples; 

import java.util.Scanner; 

import org.scribe.builder.*; 
import org.scribe.builder.api.*; 
import org.scribe.model.*; 
import org.scribe.oauth.*; 

public class FoursquareExample 
{ 
    private static final String PROTECTED_RESOURCE_URL = "http://api.foursquare.com/v1/user"; 

    public static void main(String[] args) 
    { 
    OAuthService service = new ServiceBuilder() 
          .provider(FoursquareApi.class) 
          .apiKey("FEGFXJUFANVVDHVSNUAMUKTTXCP1AJQD53E33XKJ44YP1S4I") 
          .apiSecret("AYWKUL5SWPNC0CTQ202QXRUG2NLZYXMRA34ZSDW4AUYBG2RC") 
          .build(); 
    Scanner in = new Scanner(System.in); 

    System.out.println("=== Foursquare's OAuth Workflow ==="); 
    System.out.println(); 

    // Obtain the Request Token 
    System.out.println("Fetching the Request Token..."); 
    Token requestToken = service.getRequestToken(); 
    System.out.println("Got the Request Token!"); 
    System.out.println(); 

    System.out.println("Now go and authorize Scribe here:"); 
    System.out.println(service.getAuthorizationUrl(requestToken)); 
    System.out.println("And paste the verifier here"); 
    System.out.print(">>"); 
    Verifier verifier = new Verifier(in.nextLine()); 
    System.out.println(); 

    // Trade the Request Token and Verfier for the Access Token 
    System.out.println("Trading the Request Token for an Access Token..."); 
    Token accessToken = service.getAccessToken(requestToken, verifier); 
    System.out.println("Got the Access Token!"); 
    System.out.println("(if your curious it looks like this: " + accessToken + ")"); 
    System.out.println(); 

    // Now let's go and ask for a protected resource! 
    System.out.println("Now we're going to access a protected resource..."); 
    OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL); 
    service.signRequest(accessToken, request); 
    Response response = request.send(); 
    System.out.println("Got it! Lets see what we found..."); 
    System.out.println(); 
    System.out.println(response.getBody()); 

    System.out.println(); 
    System.out.println("Thats it man! Go and build something awesome with Scribe! :)"); 
} 

} 
+0

사용자를 앱에서 인증 URL로 리디렉션 한 다음 애플리케이션으로 어떻게 다시 보냅니 까? – Siddharth

+0

네가 본 것을 모르지만 Foursquare에는 [예제 Android 코드] (https://github.com/foursquare/android-oauth-example)가 있습니다. 리디렉션을 처리하려면 포함 된 웹보기에서 언제든지 수행 할 수 있으며 [순수 AJAX 접근 방식] (https://developer.foursquare.com/overview/auth)을 따르십시오. – dziczkzw

+0

저는 모바일 개발자 인 초보자입니다. 어떻게해야합니까? PhoneGap – Siddharth