2016-09-13 2 views
0

Uber ride 요청 위젯을 클릭 할 때 메시지가 표시됩니다. 나는이 link에서 동일한 코드를 다른 응용 프로그램과 그 작업에 사용했습니다. 내가 여기서 뭔가 잘못하고있는거야? 나는 다른 client_id 및 server_token으로 시도했지만 동일한 결과를 얻었다. 내가 생각하기에 픽업 앤 드롭 위치가 너무 멀어서 근처에있는 위치를 편집했을 때 동일한 응답을 얻었습니다. enter image description hereUber SDK 통합 오류

답변

0

오류

private static final String CLIENT_ID = "<MY_CLIENT_ID>"; 
 
private static final String REDIRECT_URI = "https://www.google.com"; 
 
private static final String SERVER_TOKEN = "<MY_SERVER_TOKEN>"; 
 

 
@Override 
 
protected void onCreate(final Bundle savedInstanceState) { 
 

 
\t GPSTracker gpsTracker = new GPSTracker(this); 
 

 
\t \t PICKUP_LAT = gpsTracker.getLatitude(); 
 
\t \t PICKUP_LONG = gpsTracker.getLongitude(); 
 

 

 
\t \t System.out.println("picklatlng"+ " "+PICKUP_LAT + " " +PICKUP_LONG); 
 

 
\t \t LocationAddress locationAddress = new LocationAddress(); 
 
\t \t locationAddress.getAddressFromLocation(PICKUP_LAT, PICKUP_LONG, getApplicationContext(), new GeocoderHandler()); 
 

 
\t \t fetchdrop(); 
 

 

 

 
} 
 

 
private void fetchdrop(){ 
 
\t \t String url = getResources().getString(R.string.app_base_url)+ "&action=eventdetails&id=" + product_id; 
 
\t \t StringRequest stringRequest = new StringRequest(Request.Method.GET, url, 
 
\t \t \t \t new Response.Listener<String>() { 
 
\t \t \t \t \t @Override 
 
\t \t \t \t \t public void onResponse(String response) { 
 

 

 
\t \t \t \t \t \t try { 
 
\t \t \t \t \t \t \t JSONObject jObj = new JSONObject(response); 
 
\t \t \t \t \t \t \t JSONArray jArray = jObj.getJSONArray("EventsList"); 
 
\t \t \t \t \t \t \t for(int i=0;i<jArray.length();i++){ 
 
\t \t \t \t \t \t \t \t JSONObject main = jArray.getJSONObject(i); 
 

 
\t \t \t \t \t \t \t \t drop_nick = main.getString("app_venue").trim(); 
 
\t \t \t \t \t \t \t \t drop_addr = main.getString("app_location"); 
 
\t \t \t \t \t \t \t \t drop_lat= Double.parseDouble(main.getString("app_lat")); 
 
\t \t \t \t \t \t \t \t drop_lng = Double.parseDouble(main.getString("app_lang")); 
 
\t \t \t \t \t \t \t \t System.out.println("UberSAM_dropdetails" + " "+ drop_nick +" "+drop_addr+" "+drop_lat+" "+drop_lng); 
 
\t \t \t \t \t \t \t \t uberConfig(); 
 
\t \t \t \t \t \t \t } 
 

 

 

 

 
\t \t \t \t \t \t } catch (JSONException e) { 
 
\t \t \t \t \t \t \t // JSON error 
 
\t \t \t \t \t \t \t e.printStackTrace(); 
 
\t \t \t \t \t \t \t Toast.makeText(Event_Details_Activity.this, "Json error: " + e.getMessage(), Toast.LENGTH_LONG).show(); 
 
\t \t \t \t \t \t } 
 

 
\t \t \t \t \t } 
 
\t \t \t \t }, new Response.ErrorListener() { 
 
\t \t \t @Override 
 
\t \t \t public void onErrorResponse(VolleyError error) { 
 
\t \t \t \t Toast.makeText(Event_Details_Activity.this, "VolleyError" + error.toString(), Toast.LENGTH_LONG).show(); 
 

 
\t \t \t } 
 
\t \t }) { 
 
      /*@Override 
 
      protected Map<String, String> getParams() { 
 
       Map<String, String> params = new HashMap<String, String>(); 
 

 

 
       return params; 
 
      }*/ 
 

 
\t \t }; 
 

 
\t \t RequestQueue requestQueue = Volley.newRequestQueue(Event_Details_Activity.this); 
 
\t \t requestQueue.add(stringRequest); 
 

 

 
} 
 

 
private void uberConfig() { 
 

 
\t \t SessionConfiguration configuration = new SessionConfiguration.Builder() 
 
\t \t \t \t .setRedirectUri(REDIRECT_URI) 
 
\t \t \t \t .setClientId(CLIENT_ID) 
 
\t \t \t \t .setServerToken(SERVER_TOKEN) 
 
\t \t \t \t .build(); 
 

 

 

 
\t \t validateConfiguration(configuration); 
 
\t \t ServerTokenSession session = new ServerTokenSession(configuration); 
 

 
\t \t Log.e("EventDetailActivity", "session:" + session.getAuthenticator()); 
 

 

 
\t \t System.out.println("UberSAM"+" "+"DROPOFF_ADDR:"+" "+drop_addr); 
 
\t \t System.out.println("UberSAM"+" "+"DROPOFF_NICK:"+" "+drop_nick); 
 
\t \t System.out.println("UberSAM"+" "+"DROPOFF_LAT:"+" "+drop_lat); 
 
\t \t System.out.println("UberSAM"+" "+"DROPOFF_LONG:"+" "+drop_lng); 
 

 
\t \t System.out.println("UberSAM"+" "+"PICKUP_ADDR:"+" "+PICKUP_ADDR); 
 
\t \t System.out.println("UberSAM"+" "+"PICKUP_NICK:"+" "+PICKUP_NICK); 
 
\t \t System.out.println("UberSAM"+" "+"PICKUP_LAT:"+" "+PICKUP_LAT); 
 
\t \t System.out.println("UberSAM"+" "+"PICKUP_LONG:"+" "+PICKUP_LONG); 
 

 
\t \t RideParameters rideParametersForProduct = new RideParameters.Builder() 
 
\t \t \t \t //.setProductId(UBERX_PRODUCT_ID) 
 
\t \t \t \t .setPickupLocation(PICKUP_LAT, PICKUP_LONG, PICKUP_NICK, PICKUP_ADDR) 
 
\t \t \t \t .setDropoffLocation(drop_lat, drop_lng, drop_nick, drop_addr) 
 
\t \t \t \t .build(); 
 

 
\t \t RideRequestButton blackButton = (RideRequestButton) findViewById(R.id.uber_button_white_1); 
 

 
\t \t RideRequestActivityBehavior rideRequestActivityBehavior = new RideRequestActivityBehavior(this, 
 
\t \t \t \t WIDGET_REQUEST_CODE, configuration); 
 

 

 

 
\t \t blackButton.setRequestBehavior(rideRequestActivityBehavior); 
 
\t \t blackButton.setRideParameters(rideParametersForProduct); 
 
\t \t blackButton.setSession(session); 
 
\t \t blackButton.loadRideInformation(); 
 
\t \t blackButton.setCallback(this); 
 

 

 
} 
 

 
private void validateConfiguration(SessionConfiguration configuration) { 
 
\t \t String nullError = "%s must not be null"; 
 
\t \t String sampleError = "Please update your %s in the gradle.properties of the project before " + 
 
\t \t \t \t "using the Uber SDK Sample app. For a more secure storage location, " + 
 
\t \t \t \t "please investigate storing in your user home gradle.properties "; 
 

 
\t \t checkNotNull(configuration, String.format(nullError, "SessionConfiguration")); 
 
\t \t checkNotNull(configuration.getClientId(), String.format(nullError, "Client ID")); 
 
\t \t checkNotNull(configuration.getRedirectUri(), String.format(nullError, "Redirect URI")); 
 
\t \t checkNotNull(configuration.getServerToken(), String.format(nullError, "Server Token")); 
 
\t \t checkState(!configuration.getClientId().equals("insert_your_client_id_here"), 
 
\t \t \t \t String.format(sampleError, "Client ID")); 
 
\t \t checkState(!configuration.getRedirectUri().equals("insert_your_redirect_uri_here"), 
 
\t \t \t \t String.format(sampleError, "Redirect URI")); 
 
\t \t checkState(!configuration.getRedirectUri().equals("insert_your_server_token_here"), 
 
\t \t \t \t String.format(sampleError, "Server Token")); 
 
}
은 동네 짱은 앱 (위젯을 구현) 인증에 사용할 계정 이미 다른 응용 프로그램 내에서 타고 시작을 나타냅니다. The widget leverages the ride_widgets scope이지만 다른 앱에서 요청한 출장에 대한 액세스는 포함되지 않습니다. 현재 존재하는 여행을 끝내고 다시 시도 할 수 있습니다. 위젯은 예상대로 작동해야합니다.

FYI, you can check out the all_trips 범위를 통해 요청한 Uber 계정의 여행을 확인하는 데 필요한 추가 승인 사항을 확인할 수 있습니다. Uber 앱 또는 기타 API 통합.

+0

답장을 보내 주셔서 감사합니다. 나는 단순히 내 응용 프로그램을 제거한 다음 다시 설치했다. 그것의 지금 잘 작동합니다. –