cja
12/28/2022, 8:28 PMbattk
12/29/2022, 6:41 AMcja
12/29/2022, 9:04 AMcja
12/29/2022, 9:12 AMbattk
12/29/2022, 9:49 AMcja
12/29/2022, 10:18 AMmichoel
12/29/2022, 11:45 PMraghav
12/30/2022, 10:20 AMfrom datetime import date
import time
import binascii
import hmac
from hashlib import sha256
import oauth2 as oauth
import requests
#BEGIN of input necessary details below
#your restlet url
url = ""
#access token and token secret
token = oauth.Token(key="",secret="")
#consumer key and secret
consumer = oauth.Consumer(key="", secret="")
http_method = "POST"
#netsuite realm
realm = ""
#ENd of input necessary details below
params = {
'oauth_version': "1.0",
'oauth_nonce': oauth.generate_nonce(),
'oauth_timestamp': str(int(time.time())),
'oauth_token': token.key,
'oauth_consumer_key': consumer.key
}
class SignatureMethod_HMAC_SHA256(oauth.SignatureMethod):
name = 'HMAC-SHA256'
def signing_base(self, request, consumer, token):
if (not hasattr(request, 'normalized_url') or request.normalized_url is None):
raise ValueError("Base URL for request is not set.")
sig = (
oauth.escape(request.method),
oauth.escape(request.normalized_url),
oauth.escape(request.get_normalized_parameters()),
)
key = '%s&' % oauth.escape(consumer.secret)
if token:
key += oauth.escape(token.secret)
raw = '&'.join(sig)
return key.encode('ascii'), raw.encode('ascii')
def sign(self, request, consumer, token):
"""Builds the base signature string."""
key, raw = self.signing_base(request, consumer, token)
hashed = hmac.new(key, raw, sha256)
# Calculate the digest base 64.
return binascii.b2a_base64(hashed.digest())[:-1]
req = oauth.Request(method=http_method, url=url, parameters=params)
oauth.SignatureMethod_HMAC_SHA256 = SignatureMethod_HMAC_SHA256
signature_method = oauth.SignatureMethod_HMAC_SHA256()
req.sign_request(signature_method, consumer, token)
header = req.to_header(realm)
header_y = header['Authorization'].encode('ascii', 'ignore')
header_x = {"Authorization": header_y, "Content-Type": "application/json"}
today = date.today().strftime('%m/%d/%y')
myJson = {"lastUpdatedTimestamp":today}
response = <http://requests.post|requests.post>(url, json=myJson, headers=header_x)
if (response.status_code!=200) :
raise Exception(response.content)
else:
data = response.json()
raghav
12/30/2022, 10:21 AMcja
01/08/2023, 5:47 PM