https://api.steampowered.com/ISteamUserAuth/AuthenticateUser/v0001 apiメソッドを使用してユーザーを認証する方法はありますか?Steam WebAPI AuthenticateUser
例えば、私は蒸気の公開鍵データをhttps://steamcommunity.com/login/getrsakey/から取得し、暗号化して、このデータをPOSTとして指定されたapi urlに送信します。 しかし、サーバーは毎回「403禁止」を返します。
私のコード例:
from Crypto.Cipher import AES
from Crypto.Cipher.PKCS1_v1_5 import PKCS115_Cipher
from Crypto.PublicKey import RSA
from Crypto.Random import get_random_bytes
import hashlib
import json
import requests
steamid = '<MY_STEAMID64>'
steampass = '<MY_STEAM_PASSWORD>'
loginkey = hashlib.md5(bytes(steampass, 'utf-8')).hexdigest()
blob32 = get_random_bytes(32)
getrsa_url = 'https://steamcommunity.com/login/getrsakey/'
getrsa_data = {'username': '<MY_STEAM_USERNAME>'}
getrsa_resp = requests.get(getrsa_url, params=getrsa_data)
response = json.loads(getrsa_resp.text)
if response.get('success'):
steam_publickey_mod = response.get('publickey_mod')
steam_publickey_mod = int(steam_publickey_mod, 16)
steam_publickey_exp = response.get('publickey_exp')
steam_publickey_exp = int(steam_publickey_exp, 16)
steam_rsa_key = RSA.construct((steam_publickey_mod, steam_publickey_exp))
steam_rsa = PKCS115_Cipher(steam_rsa_key)
if steam_rsa_key.can_encrypt():
sessionkey = steam_rsa.encrypt(blob32)
if type(sessionkey) is tuple:
sessionkey = sessionkey[0]
steam_aes = AES.new(blob32)
encrypted_loginkey = steam_aes.encrypt(loginkey)
if all([steamid, sessionkey, encrypted_loginkey]):
authenticate_user_url = (
'https://api.steampowered.com/ISteamUserAuth/AuthenticateUser/v0001')
authenticate_user_json = {
'steamid': steamid,
'sessionkey': sessionkey,
'encrypted_loginkey': encrypted_loginkey,
}
if __name__ == '__main__':
import ipdb
ipdb.set_trace()
authenticate_user_resp = requests.post(url=authenticate_user_url,
data=authenticate_user_json)
authenticate_user_resp.okは、偽
authenticate_user_resp.status_codeが私の悪い英語のための
申し訳禁断の403の
authenticate_user_resp.reasonリターンを返してください返します
ああ、ありがとう! https://steamcommunity.com/login/dologin/に依頼して現在認証を受けている場合、AuthenticateUserでCookieを取得する方法を教えてください。 (メソッドで必要なパラメータを正しく作成する方法) – CryptoManiac
dologinで認証するとCookieが取得されます。 AuthenticateUserを使用する必要はありません。 –
とsteamMachineAuth? – CryptoManiac