1

signpost を使用して Android から Magento Oauth からアクセス トークンを取得しようとしています。このために、以下のコードを使用しました。

    final String MAGENTO_API_KEY = "xxxxxxxxxxxxxxxxxxx";
    final String MAGENTO_API_SECRET = "xxxxxxxxxxxxxxxxxxxxx";

    final String OAUTH_INIT_URL = "http://ip/magento/oauth/initiate/";
    final String ACCESS_TOKEN_URL = "http://ip/magento/oauth/token/";
    final String AUTHORIZE_URL = "http://ip/magento/admin/oAuth_authorize/";

    CommonsHttpOAuthConsumer consumer;
    CommonsHttpOAuthProvider provider;
    @TargetApi(Build.VERSION_CODES.GINGERBREAD)
    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if( Build.VERSION.SDK_INT >= 9){
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
            }
        setContentView(R.layout.activity_main);

        new OauthConnectAsync().execute();    
    }

    public class OauthConnectAsync extends AsyncTask <String, Void, String>{
        protected void onPreExecute() {
            super.onPreExecute();

        }
        @Override
        protected String doInBackground(String... params) {
            // TODO Auto-generated method stub

            try {

                consumer = new CommonsHttpOAuthConsumer(MAGENTO_API_KEY, MAGENTO_API_SECRET);
                provider = new CommonsHttpOAuthProvider(OAUTH_INIT_URL,ACCESS_TOKEN_URL, AUTHORIZE_URL);   
                provider.setOAuth10a(true);
                provider.retrieveRequestToken(consumer, OAuth.OUT_OF_BAND);
            } catch (OAuthMessageSignerException | OAuthNotAuthorizedException
                    | OAuthExpectationFailedException
                    | OAuthCommunicationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            Log.d("Tokens" , consumer.getToken() + " -- " + consumer.getTokenSecret());

            return null;
        }
        protected void onPostExecute(String file_url) {


        }

しかし、このコードでは、次のように 404 not found エラーが表示されます。

08-11 10:10:27.692: W/System.err(1860): oauth.signpost.exception.OAuthCommunicationException: Communication with the service provider failed: Service provider responded in error: 404 (Not Found)

http://localhost/magento/oauth/initiateFirefox RESTClient でURL を使用すると、 As という応答が返されました

oauth_problem=parameter_absent&oauth_parameters_absent=oauth_consumer_key

Androidコードでエラーが見つかりません。助けていただければ幸いです。ここ数日からこれに固執しています。何か変更が必要な場合は教えてください。

4

0 に答える 0