WooCommerce API for mobile App

前端 未结 4 1379
故里飘歌
故里飘歌 2020-12-17 16:20

i am planning to develop a native mobile Android App for WooCommerce shops.

I had a look at their REST API documentation here: http://docs.woocommercev2.apiary.io/ I

4条回答
  •  没有蜡笔的小新
    2020-12-17 17:19

    For http (and not ssl protocol such as https ) request, you must use from OAthu 1.0a authenticate framework. There are many libraries for oauth 1.0a in java, i'm use from scribeJava

    So, do the following steps:

    1. In app/build.gradle in dependency scop add this:

      compile 'org.scribe:scribe:1.3.5'

    2. New class as WoocommerceApi for provider of OAuth service. important. You must use a
      public class in DefaultApi10a for implementing oauth provider

      public static class WooCommerceApi extends org.scribe.builder.api.DefaultApi10a {
      
          @Override
          public org.scribe.model.Verb getRequestTokenVerb()
          {
              return org.scribe.model.Verb.POST;
          }
      
          @Override
          public String getRequestTokenEndpoint() {
              return "http://www.your-domain.com/wc-auth/authorize";
          }
      
          @Override
          public String getAccessTokenEndpoint() {
              return "none";
          }
      
          @Override
          public String getAuthorizationUrl(org.scribe.model.Token requestToken) {
              return "none";
          }
      }
      
    3. And you Must make request in Thread or AsyncTask

      String restURL = "http://www.your-domain.com/wp-json/wc/v1/products/";
      OAuthService service = new ServiceBuilder()
           .provider(WooCommerceApi.class)
           .apiKey(CONSUMER_KEY) //Your Consumer key
           .apiSecret(CONSUMER_SECRET) //Your Consumer secret
           .scope("API.Public") //fixed
           .signatureType(SignatureType.QueryString)
           .build();
      OAuthRequest request = new OAuthRequest(Verb.GET, restURL);
      // for POST requests 
      // OAuthRequest request = new OAuthRequest(Verb.POST, restURL); 
      // request.addBodyParameter(YOUR_PARAM_KEY, YOUR_VALUE);
      // or 
      // request.addPayload(YOUR_JSON);
      Token accessToken = new Token("", ""); //not required for context.io
      service.signRequest(accessToken, request);
      Response response = request.send();
      Log.d("OAuthTask",response.getBody());
      

提交回复
热议问题