我该如何发送交易报价

时间:2017-11-09 07:51:44

标签: php api codeigniter steam steam-web-api

实际上我正在研究Steam交易报价功能,我遇到了问题。我已下载Steam类库并在Codeigniter中实现它。我正在按照https://github.com/halipso/php-steam-tradeoffers#setupsessionid-cookies的设置指南进行操作。实际上我不知道会话ID和cookie:

String json_data = stringBuilder.toString().trim();
JSONObject object = new JSONObject(json_data);
JSONObject object1 = new JSONObject("Next");
JSONArray Jarray  = object1.getJSONArray("Days");
for (int i = 0; i < Jarray.length(); i++)
{
    JSONObject Jasonobject = Jarray.getJSONObject(i);
    dbHelper.putStationsInformation((Jasonobject),sqLiteDatabase);
}
dbHelper.close();

$steam->setup('sessionID', 'cookies'); sessionID会是什么?

我已经读过它,但没有得到任何解决方案。如何在我的代码中获取并实现它?

3 个答案:

答案 0 :(得分:3)

如果这是在Laravel上,您可以发送_token,并由他们发送csrf_field

在CI中你可以这样做。 (csrf生成唯一会话ID)

路径 - application/config/config.php

$config['csrf_protection'] = TRUE;

在“登录”表单中,您可以添加此页面或在页面初始化中添加此

$csrf = array(
        'name' => $this->security->get_csrf_token_name(),
        'hash' => $this->security->get_csrf_hash()
);

<input type="hidden" name="<?=$csrf['name'];?>" value="<?=$csrf['hash'];?>" />

因此,在保存时,您可以将其添加到会话中。 BTW此令牌也可用于cookie。

阅读此Cross-site request forgery (CSRF)

  

标记可以在每次提交时重新生成(默认),也可以在CSRF cookie的整个生命周期内保持相同。标记的默认重新生成提供更严格的安全性,但可能导致可用性问题,因为其他标记变得无效(后退/前进导航,多个选项卡/窗口,异步操作等)。您可以通过编辑以下配置参数

来更改此行为      

源代码签名文档

如果它不在登录页面中,那么

最好选择false,(由于此令牌可能会在每次提交时重新生成(默认)

$config['csrf_regenerate'] = FALSE;

答案 1 :(得分:2)

会话ID是Steam的UUID,对应于我们的Steam个人资料。 这些cookie可以让您进行身份验证。

以下是如何获取sessionID和Cookie的示例: https://github.com/SzymonLisowiec/php-steamlogin(不是我的回购,归功于SzymonLisowiec)

答案 2 :(得分:2)

首先,doc上的文档说您只需要一个API KEY即可将请求和呼叫发送到端点,因为您正在使用的类库已帮助您进入您的帐户并获取API KEY自己。
所以通过检查班级 SteamTrade 会解释设置(sessionId,cookies):

  1. 如果有API KEY,那么我不需要Cookie和SessionID停止其他去第2步。
  2. 获取API KEY,但您应该向我提供Cookie和sessionid,以便我登录并接受协议,并将您的帐户注册为开发者帐户,请执行第1步,否则显示错误。

  3. 注意:使用此格式完成的所有调用仅在不提供API密钥时才需要SessionID和Cookie。

    http://api.steampowered.com/interface-name/method-name/version/?key=apikey&format=format
    截图:
    显示如何使用firefox检查器cookie选项卡获取sessionid和cookie

    sessionid screenshot