woocommerce rest api OAuth-аутентификация в андроиде
Какой пример кода для аутентификации OAuth 1.0a(одна нога) в Android? есть ли библиотека для этого?, Я использую затмение, и я новичок в Android. кто-нибудь может уточнить путь для меня?
2 ответа
Ответить на мой собственный вопрос:
- скачайте библиотеку Scrib.jar и добавьте ее в свою папку lib (вы можете скачать ее с ( здесь)
создайте класс с именем "OneLeggedApi10" и скопируйте в него код ниже:
import org.scribe.builder.api.DefaultApi10a; import org.scribe.model.Verb; import org.scribe.model.Token; public class OneLeggedApi10 extends DefaultApi10a { @Override public String getAccessTokenEndpoint() { return null; } @Override public String getRequestTokenEndpoint() { return null; } @Override public String getAuthorizationUrl(Token requestToken) { return null; } @Override public Verb getAccessTokenVerb() { return Verb.GET; } @Override public Verb getRequestTokenVerb() { return Verb.GET; } }
Теперь вы можете выполнить аутентификацию OAuth:
String RESOURCE_URL = "http://yourDomain.com/wc-api/v3/orders"; String SCOPE = "*"; //all permissions Response response; OAuthRequest request; String responsebody = ""; OAuthService service = new ServiceBuilder().provider(OneLeggedApi10.class) .apiKey("your_key") .apiSecret("your_apiSecret") .signatureType(SignatureType.QueryString) .debug() /*.scope(SCOPE).*/ .build(); request = new OAuthRequest(Verb.GET, RESOURCE_URL); service.signRequest(new Token("", ""), request); // Now let's go and ask for a protected resource! Log.d("scribe","Now we're going to access a protected resource..."); try{ response = request.send(); if (response.isSuccessful()) { responsebody = response.getBody(); } } catch (Exception e) { e.printStackTrace(); }
обратите внимание, что если вы не используете приведенный выше код в AsyncTask, то поместите часть request.send() в поток (фактически весь раздел try_catch), чтобы избежать запуска в исключении основного потока
наконец, если вы хотите отправить данные, например, в случае, если вы хотите обновить заказ, замените
request = new OAuthRequest(Verb.GET, RESOURCE_URL);
с этими строками:
String payload = yourJsonOBJ.toString(); request = new OAuthRequest(Verb.PUT, RESOURCE_URL); request.addHeader("Content-Type", "application/json"); request.addPayload(payload);
больше информации на сайте документации WooCommerce
Надеюсь, это поможет;)
удачи..
new Thread() {
@Override
public void run() {
String RESOURCE_URL = "http://www.woocommerce.com/wp-json/wc/v1/api/";
String SCOPE = "*"; //all permissions
Response response;
OAuthRequest request;
String responsebody = "";
OAuthService service = new ServiceBuilder().provider(OneLeggedApi10.class)
.apiKey("yourConsumerKey")
.apiSecret("yourConsumerSecret")
.signatureType(SignatureType.QueryString)
.debug()
/*.scope(SCOPE).*/
.build();
request = new OAuthRequest(Verb.GET, RESOURCE_URL);
service.signRequest(new Token("", ""), request);
// Now let's go and ask for a protected resource!
Log.d("scribe","Now we're going to access a protected resource...");
try {
response = request.send();
if (response.isSuccessful()) {
responsebody = response.getBody();
Log.v("response", responsebody);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
Этот код обновлен сверху, приведенный выше код работает, получая JSON из WordPress Woocommerce API. Но если вам интересно, как использовать нить, это ответ. И я добавляю Log.v для просмотра ответа json.