iphonemagentooauthmagento-1.7magento-rest-api

magento REST API not accessible in iphone


When I try to access rest API using iPhone I have passed following parameter in URL and used both methods POST and GET but it displays Access Denied.

oauth_version="1.0", 
oauth_signature_method="HMAC-SHA1",
oauth_nonce="B0dlzkfMWCAn0TJ", 
oauth_timestamp="1366280813",
oauth_consumer_key="klkjylsiozbv6vfdsqtuheqo3kmqqzv2",
oauth_token="t9pefrwylmg7webyepsqepotlhzbytkp",
oauth_signature="NeOwbCLUPbIyF9ErnHoFQOl9%2Bwo%3D"

I have worked with REST Client plugin available for Firefox and Chrome, REST API is work well using REST Client plugin but not accessible in iPhone.

I am generating a random value for oauth_timestamp, oauth_signature and oauth_nonce then also REST API is displaying Access Denied.

Please provide suggestions.


Solution

  • //here final_sign is signature generated from following procedure.

    $nonce = substr(md5(uniqid('nonce_', true)),0,16);
    $temprealm="http://magentohost/api/rest/products";
    $realm=urlencode($temprealm);
    $oauth_version="1.0";
    $oauth_signature_method="HMAC-SHA1";
    $oauth_consumer_key="dfddfgdgdfgddf6qgygmyvw7e3";
    $oauth_access_token="fdgdfgfdgdfg357gimpdnuejvcbtk51ni";
    $oauth_method="GET";
    $oauth_timestamp=time();
    $algo="sha1";
    $key="sb88hfdihyg25ipt1by559yzbj2m3861&s7uhaheu8nrx961oxg6uc3os4zgyc2tm"; //consumer secret & token secret //Both are used in generate signature
    $data="oauth_consumer_key=".$oauth_consumer_key."&oauth_nonce=".$nonce."&oauth_signature_method=".$oauth_signature_method."&oauth_timestamp=".$oauth_timestamp."&oauth_token=".$oauth_access_token."&oauth_version=".$oauth_version;
    
    $send_data=$oauth_method."&".$realm."&".urlencode($data);
    $sign=hash_hmac($algo,$send_data,$key,1); // consumer key and token secrat used here
    $fin_sign=base64_encode($sign);
    
    echo $fin_sign;