在对接 Steam API 过程中遇到一些问,有对接过的吗?
最近在做一个类似 stmbuy
的应用,开发过程需要对接 steam api
获取用户的公开库存,在查阅 steam api 文档后发现可以使用 https://partner.steam-api.com/IInventoryService/GetInventory/v1
接口获取,但是我调用一直是报 403
错误。
我的代码如下:
<?php
namespace App\Http\Controllers\Api;
use App\Http\Requests\Api\OrnamentRequest;
use App\Models\Ornament;
use App\Transformers\OrnamentTransformer;
use GuzzleHttp\Client;
use Illuminate\Http\Request;
class OrnamentsController extends Controller
{
public function inventory(){
$client_http=new Client(['verfiy'=>false]);
$url="https://partner.steam-api.com/IInventoryService/GetInventory/v1/?key=key";
$input_json=json_encode([
"appid"=>570,
"steamid"=>"steamid",
]);
$input_json_url_encode=urlencode($input_json);
$url=$url."&input_json=".$input_json_url_encode;
try{
$response= $client_http->request("get",$url);
}catch (\Exception $exception){
return ['status' => 500, 'msg' => $exception->getMessage(), 'info' => []];
}
$status = $response->getStatusCode();
$json_content = $response->getBody()->getContents();
if ($status!=200){
return ['status' => $status, 'msg' => '', 'info' => []];
}
return ["url"=>$url,"response"=>$json_content];
}
}
steam api
接口区分普通接口和服务(service)接口,除了传参数方式不一样外,服务接口还要使用开发者 web api
密钥,在调用服务接口的使用我已经使用了开发者密钥。
我试过普通的接口,很轻松的获取到结果了,比如:https://api.steampowered.com/ISteamUser/GetFriendList/v1/
。
感谢您看我的问题,我尝试了在网上搜索解决,但是失败了,如果您知道怎么解决,麻烦告诉我我该怎么做?如果您需要报酬才能解决的话,可以私信我报个价。
友情提醒:你是不是暴露了不该暴露的东西?
检查,参数是不是给正确了?秘钥之类?提示你没权限
@largezhou 没关系,现在是测试阶段,提供这些是为了给需要调试的人调试,这些后期都会换的
@hedeqiang 参数是按照文档写的,不知道是不是我对文档的解读有误。
steamid你的代码里是字符串,案例上是一个大整数,你调整下看下对不对
先把问题里面的 key 删了吧,这个 key 能盗库存等等
@AGD 好的,谢谢提醒
@RemoteOnly 我尝试过,不是这个问题。
楼主 请问你找到解决办法了吗? 我也遇到这个问题 调用:http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=%s&steamids=%s 这个api没问题 但是调用:partner.steam-api.com/IInventorySe... 库存api就提示权限不够了·····
@zhangdinghui 库存 api 权限不足的问题没有解决,但是用了另外一个接口搞定了获取库存的问题,接口地址:steamcommunity.com/inventory
你们可以拿到授权登陆steam 之后 除了拿到steamid 还可以拿到头像 昵称吗