我想使用twilio api从android设备发送短信.我用那个代码 -
TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);
params = new HashMap<String,String>();
params.put("From","+1 205-490-2571");
params.put("To","9614549499");
params.put("Body", "Bad news , the server is down and it needs your help");
Account acct = client.getAccount();
SmsFactory smsFactory = acct.getSmsFactory();
Sms sms = null;
try {
sms = smsFactory.create(params);
} catch (TwilioRestException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我收到错误来初始化TwilioRestClient对象.我收到了这个错误
10-29 10:07:48.511: E/AndroidRuntime(354): FATAL EXCEPTION: main
10-29 10:07:48.511: E/AndroidRuntime(354): java.lang.NoSuchMethodError: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager.<init>
10-29 10:07:48.511: E/AndroidRuntime(354): at com.twilio.sdk.TwilioRestClient.<init>(TwilioRestClient.java:139)
10-29 10:07:48.511: E/AndroidRuntime(354): at com.twilio.sdk.TwilioRestClient.<init>(TwilioRestClient.java:110)
10-29 10:07:48.511: E/AndroidRuntime(354): at com.twilio.twiliomessage.TwilioActivity$1.onClick(TwilioActivity.java:81)
10-29 10:07:48.511: E/AndroidRuntime(354): at android.view.View.performClick(View.java:2485)
10-29 10:07:48.511: E/AndroidRuntime(354): at android.view.View$PerformClick.run(View.java:9080)
10-29 10:07:48.511: E/AndroidRuntime(354): at android.os.Handler.handleCallback(Handler.java:587)
10-29 10:07:48.511: E/AndroidRuntime(354): at android.os.Handler.dispatchMessage(Handler.java:92)
10-29 10:07:48.511: E/AndroidRuntime(354): at android.os.Looper.loop(Looper.java:123)
10-29 10:07:48.511: E/AndroidRuntime(354): at android.app.ActivityThread.main(ActivityThread.java:3683)
10-29 10:07:48.511: E/AndroidRuntime(354): at java.lang.reflect.Method.invokeNative(Native Method)
10-29 10:07:48.511: E/AndroidRuntime(354): at java.lang.reflect.Method.invoke(Method.java:507)
10-29 10:07:48.511: E/AndroidRuntime(354): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-29 10:07:48.511: E/AndroidRuntime(354): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-29 10:07:48.511: E/AndroidRuntime(354): at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
小智 1
我也在 Twilio 的开发者网络团队工作,并根据 Devin 所说的内容进行构建,包括您的身份验证令牌将是一个很大的安全风险。相反,我们要求您使用 TwiML 应用程序来接收功能令牌。TwiML 是一种非常直观的语言,如果您\xe2\x80\x99 感兴趣,我们在网上提供了一些示例。您可以使用功能令牌对您的设备与 Twilio 服务器进行的任何通信进行签名。您\xe2\x80\x99需要在此处向 Twilio 注册您的 TwiML 应用程序。
\n\n如果您\xe2\x80\x99使用Android设备,则应该使用我们的Android SDK与服务器通信。Here\xe2\x80\x99 是一个 Java 类示例,您可以使用它来使用 Twilio Android SDK。您可以在应用程序中引用此类中的方法来连接到服务器。(即 connect() 和 disconnect() )。
\n\nimport android.app.ProgressDialog;\nimport android.content.Context;\nimport android.util.Log;\nimport android.widget.ProgressBar;\nimport com.twilio.client.Connection;\nimport com.twilio.client.Device;\nimport com.twilio.client.DeviceListener;\nimport com.twilio.client.Twilio;\nimport org.apache.http.client.methods.HttpGet;\nimport org.apache.http.client.methods.HttpUriRequest;\nimport java.util.HashMap;\nimport java.util.Map;\n\n\npublic class TwilioAndroid implements Twilio.InitListener\n{\n private Device mDevice;\n private String TAG = "TwilioAndroid";\n private Connection mConnection;\n private Context mContext;\n\n public TwilioAndroid(Context context)\n {\n this.mContext = context;\n Twilio.initialize(context, this);\n }\n//this will authenticate your device by going to the capability URL you\xe2\x80\x99ve provided //(https://www.your-web-app.com/token) and retrieving a capability token to sign further communications with. \n @Override\n public void onInitialized(){\n Log.d(TAG, "Twilio SDK is ready");\n new HttpHandler(){\n @Override\n public HttpUriRequest getHttpRequestMethod(){\n Log.d(TAG, mContext.getString(R.string.app_capability_url));\n\n return new HttpGet(mContext.getString(R.string.app_capability_url));\n }\n\n @Override\n public void onResponse(String token) {\n mDevice = Twilio.createDevice(token, null);\n Log.d(TAG, "Capability token: " + token);\n }\n }.execute();\n }\n\n /* Twilio.InitListener method */\n @Override\n public void onError(Exception e) {\n Log.e(TAG, "Twilio SDK couldn\'t start: " + e.getLocalizedMessage());\n }\n\n//You can add more parameters to this custom method if necessary\n public void connect(String phoneNumber)\n {\n Map<String, String> parameters = new HashMap<String, String>();\n parameters.put("To", phoneNumber);\n//and you can add your other parameters here \n mConnection = mDevice.connect(parameters, null);\n if (mConnection == null)\n Log.w(TAG, "Failed to create new connection");\n }\n public void disconnect()\n {\n if (mConnection != null) {\n mConnection.disconnect();\n mConnection = null;\n }\n }\n\n @Override\n protected void finalize()\n {\n if (mDevice != null)\n mDevice.release();\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
929 次 |
| 最近记录: |