I need to generate access token for third party extension in Magento. I create integration, now I should sent request to /oauth/token/request in order to get a request token, but I get following error:
oauth_problem=The+signatire+is+invalid.+Verify+and+try+again.
My signature function is as follow
function sign($method, $url, $data, $consumerSecret, $tokenSecret) { $array=[ $method, $url, $data['oauth_nonce'], $data['oauth_signature_method'], $data['oauth_timestamp'], $data['oauth_version'], $data['oauth_consumer_key'], $tokenSecret, ]; $url = urlEncodeAsZend($url); $data = urlEncodeAsZend(http_build_query($array, '', '&')); $data = implode('&', $array); $secret = implode('&', [$consumerSecret, $tokenSecret]); return base64_encode(hash_hmac('sha1', $data, $secret, true)); } function urlEncodeAsZend($value) { $encoded = rawurlencode($value); $encoded = str_replace('%7E', '~', $encoded); return $encoded; } PS: my oauth_token is empty because in this step no token is created in Integrations.Doc says :
To generate the signature, you must use the HMAC-SHA1 signature method. The signing key is the concatenated values of the consumer secret and token secret separated by the ampersand (&) character (ASCII code 38), even if empty.
https://devdocs.magento.com/guides/v2.2/get-started/authentication/gs-authentication-oauth.html
I am using Magento 2.3