2014-08-28 1 views
0

숫자로 SMS를 보내려고하고 있는데 문제없이 잘 작동합니다. 이것은 내 코드입니다. 나는 보통에서 일하는 내 프로젝트에 동일한 코드를 넣으면TWILIO에서 작동하는 예외 GAE의 SMS API 보내기

공용 클래스 SendSMSExample {

public void sendSMS(String data) throws Exception { 

String url = "https://api.twilio.com/2010-04-01/Accounts/XXXXXXXXXXXXXXX/Messages"; 
    URL url1 = new URL(url); 
    URLConnection conn = url1.openConnection(); 
    conn.setDoOutput(true); 

    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream(), "UTF-8"); 

     wr.write("data"); 

    TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN); 
     Account account = client.getAccount(); 

     //Use the API to send a text message 
     SmsFactory smsFactory = account.getSmsFactory(); 
     Map<String, String> smsParams = new HashMap<String, String>(); 
     smsParams.put("To", "+1408XXXXXXX"); 
     smsParams.put("From", "(508)XXX-XXXX"); // Replace with a Twilio phone number in your account 
     smsParams.put("Body", "Hello"); 
     try 
     { 
      Sms sms = smsFactory.create(smsParams); 
     } 
     catch (TwilioRestException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    // Create an instance of the SmsFactory class. 

     wr.flush(); 


    // Get the response 
     BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
     String output = ""; 
     String inputLine; 
     while ((inputLine = reader.readLine()) != null) 
     { 
      output += inputLine; 
     } 

     wr.close(); 
     reader.close(); 


} 

}

그러나, 나는 예외를 얻을. 다음과 같은 예외 코드

sendMessage 첨부가 TaskAdapter {

public static final String ACCOUNT_SID = "XXXXXXXXXXXXXXX"; 
public static final String AUTH_TOKEN = "XXXXXXXXXXXXXXX"; 

public static String PHONE_NUMBER = "from"; 
public static String MESSAGE = "message"; 

public void run(JSONObject x, JSONObject xx, 
     JSONObject xxx, JSONObject xxxx) throws Exception { 

    String from_phone_number = getStringValue(x, xx, 
      xxx, xxxx); 

    String message = getStringValue(x, xx, 
      xxx, xxxx)); 

    String url = "https://api.twilio.com/2010-04-01/Accounts/XXXXXXXXXXXXXXX/Messages"; 
    URL url1 = new URL(url); 
    URLConnection conn = url1.openConnection(); 
    conn.setDoOutput(true); 

    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream(), 
      "UTF-8"); 

    wr.write("data"); 
    TwilioRestClient client = null; 
    try { 
     ***client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);*** 
    } catch (Exception e) { 
     System.out.println(e); 
     e.getStackTrace(); 
    } 
    Account account = client.getAccount(); 

    // Use the API to send a text message 
    SmsFactory smsFactory = account.getSmsFactory(); 
    Map<String, String> smsParams = new HashMap<String, String>(); 
    smsParams.put("To", XXXX); 
    smsParams.put("From", XXXX); // Replace with a Twilio phone 
               // number in your account 
    smsParams.put("Body", "Hello 123"); 
    try { 
     Sms sms = smsFactory.create(smsParams); 
    } catch (TwilioRestException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    // Create an instance of the SmsFactory class. 

    wr.flush(); 

    // Get the response 
    BufferedReader reader = new BufferedReader(new InputStreamReader(
      conn.getInputStream())); 
    String output = ""; 
    String inputLine; 
    while ((inputLine = reader.readLine()) != null) { 
     output += inputLine; 
    } 

    wr.close(); 
    reader.close(); 

} 

} 나는이 줄 클라이언트 = 새로운 TwilioRestClient (ACCOUNT_SID, AUTH_TOKEN)에서 예외를 얻고있다

를 확장

공용 클래스;

java.lang.NoSuchMethodError : 나는이 항아리 버전 twilio - 자바 SDK-3.4.6-항아리 의존성-와 그리고 예외는 사용하고 org.apache.http.conn.scheme.Scheme합니다. (AppJavaClientConnectionManager.java : 53) at com.twilio.sdk.TwilioRestClient. (TwilioRestClient(); .java : 144) at com.twilio.sdk.TwilioRestClient. (TwilioRestClient.java:117) at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) at com.google. appengine.api.socket.dev.DevSocketFilter.doFilter (DevSocketFilter.java:74) at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter (ResponseRewriterFilter.java:123) at org.mortbay. jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) com.google.appengine.tools.development.HeaderVerificationFilter.doFilter (HeaderVerificationFilter.java:34) at org.mortbay.jetty.servlet.ServletHandler $ org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter에서 CachedChain.doFilter com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter (ServeBlobFilter.java:63)에서 (ServletHandler.java:1157) (ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (Transacti onCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) at com.google.appengine.tools.development.StaticFileFilter.doFilter (StaticFileFilter.java:125) com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest에서 org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) (DevAppServerModulesFilter.java:368) com.google에서 에서 . appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest (DevAppServerModulesFilter.java:351) at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter (DevAppServerModulesFilter.java:116) at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.servlet. SessionHandler.handle (SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle (WebAppContext.java : 418) at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle (DevAppEngineWebAppContext.java:97) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152) at com. google.appengine.tools.development.JettyContainerService $ ApiProxyHandler.handle (JettyContainerService.java:485) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152) at org.mortbay.jetty.Server. handle (Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest (HttpConnection.java:542) at org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete (HttpConnection.java:923) at org. mortbay.jetty.HttpParser.parseNext (HttpParser.java:547) at org.mortbay.jetty.HttpParser .parseAvailable (HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle (HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run (SelectChannelEndPoint.java:409) at org .mortbay.thread.QueuedThreadPool $ PoolThread.run (QueuedThreadPool.java:582) 사전 :

+0

ACCOUNT_SID와 AUTH_TOKEN 및 기타 고유 키는 모두 XXX로 작성해야합니다. 모든 적절한 라이브러리를 포함 시켰습니까? 이것은 사용 중일 수 있습니다 : http://stackoverflow.com/questions/17564775/how-to-create-call-from-twilio-helper-liabrary-in-google-app-engine – Ryan

+0

나는 그들을 밖으로 XX하고 적절한 사용 라이브러리. 아직 해결되지 않았습니다. –

답변

0

에서

덕분에이 SMS 메시지를 보내는 내 코드입니다. 귀하의 코드에서 URLConnection, OutputStreamWriter 등이 필요한 이유를 이해할 수 없습니다.

public static void sendSms(String phoneNumber, String message) throws TwilioRestException { 

    SmsFactory smsFactory = account.getSmsFactory(); 
    HashMap<String, String> smsParams = new HashMap<String, String>(); 
    smsParams.put("To", myPhoneNumber); 
    smsParams.put("From", phoneNumber); 
    smsParams.put("Body", message); 
    smsFactory.create(smsParams); 
} 
+0

안녕하세요, twilio 워드 프로세서에 Acoording, 그것은 우리에게 먼저 게시물 요청을 요청합니다. 그게 나를 사용하는 이유. 당신이 언급 한 방식대로 노력했습니다. 작동하지 않습니다 : ( –

+0

생산에이 코드가 있습니다 ... –