SnapHack Library发出“错误:UNAUTHORIZED”api调用

时间:2013-06-25 11:47:03

标签: php api

我试图使用SnapHacks Library,但我遇到了Api Call问题。

可在此处找到该库https://github.com/jasonanovak/snaphaxpy

当我进行此Api通话时:

$opts['username'] = $_POST['u'];
$opts['password'] = $_POST['p'];
$opts['debug'] = TRUE;

$s = new Snaphax($opts);
$result = $s->login();

我收到回复:

SNAPHAX DEBUG:P1:m198sOkJEn37DjqZ32lpRu76xmw288xSQ9 SNAPHAX DEBUG:P2:1.37216038466E + 12 SNAPHAX DEBUG:S1:iEk21fuwZApXlz93750dmW22pw389dPwOkm198sOkJEn37DjqZ32lpRu76xmw288xSQ9 SNAPHAX DEBUG:S2:1.37216038466E + 12iEk21fuwZApXlz93750dmW22pw389dPwOk SNAPHAX DEBUG:S3:93046e57a3c183186e9e24ebfda7ca04e7eb4d8119060a8a39b48014d4c5172b SNAPHAX DEBUG:S4:bfea75d4e369551c251cff3a308f9c4a23f96c75f9ef161068a7c7946713da57 SNAPHAX DEBUG:出: 930a7554e36155186e1cffeaf0af9c4423e94d8519ef1a8069b4c714d7c51a5b SNAPHAX DEBUG:POST PARAMS:{ “用户名”: “名为myUsername”, “密码”: “MyPassword输入”, “时间戳”:1.37216038466e + 12 “req_token”: “930a7554e36155186e1cffeaf0af9c4423e94d8519ef1a8069b4c714d7c51a5b”} SNAPHAX DEBUG:HTTP响应code401 SNAPHAX DEBUG: POST返回 错误:未经授权

function login() {
    $ts = $this->api->time();
    $out = $this->api->postCall(
        '/ph/login',
        array(
            'username' => $this->options['username'],
            'password' => $this->options['password'],
            'timestamp' => $ts
        ),
        $this->options['static_token'], 
        $ts
    );


    if (is_array($out) &&
            !empty($out['auth_token'])) {
        $this->auth_token = $out['auth_token'];
    }
    return $out;
}

$ out不会返回令牌

如果有人熟悉图书馆或Snapchat API,可以提供帮助

3 个答案:

答案 0 :(得分:2)

在snaphax.php中更改时间函数,以便将时间戳作为字符串返回:

    function time() {
        return round(microtime(false) * 1000);
    }

答案 1 :(得分:1)

您的时间戳应该是一个字符串。在您的POST请求中,它显示为Snapchat无法识别的长,因此它将您的身份验证令牌标记为无效

答案 2 :(得分:0)

您的时间戳字符串不正确,这是因为您的精度在php.ini中设置错误

应该是precision = 16

更改此项以更正问题;或使用类似的解决方法

function time() {
                        round(microtime(true) * 1000);
                        return round(preg_replace('/(0)\.(\d+) (\d+)/', '$3$1$2', microtime(1)));


                }