@ArrayPop

Как добавить fields для одноклассников?

Пишу стандартный код

$sign = md5("application_key={$public_key}format=jsonmethod=users.getCurrentUser" . md5("{$tokenInfo['access_token']}{$client_secret}"));

$params = array(
'method' => 'users.getCurrentUser',
'access_token' => $tokenInfo['access_token'],
'application_key' => $public_key,
'format' => 'json',
'sig' => $sign
);

$userInfo = json_decode(file_get_contents('api.odnoklassniki.ru/fb.do' . '?' . urldecode(http_build_query($params))), true);

if (isset($userInfo['uid'])) {
$result = true;
}
А как добавить fields к методу getCurrentUser?
Пробовал вот так

$sign = md5("application_key={$public_key}format=jsonfields=email,uidmethod=users.getCurrentUser" . md5("{$tokenInfo['access_token']}{$client_secret}"));

$params = array(
'method' => 'users.getCurrentUser',
'access_token' => $tokenInfo['access_token'],
'application_key' => $public_key,
'format' => 'json',
'fields' => 'email,uid',
'sig' => $sign
);

$userInfo = json_decode(file_get_contents('api.odnoklassniki.ru/fb.do' . '?' . urldecode(http_build_query($params))), true);

if (isset($userInfo['uid'])) {
$result = true;
}
Выдает ошибку что $sign не корректный: PARAM_SIGNATURE : Invalid signature
Как добавить fields?
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ArrayPop Автор вопроса
Решение найдено!
для sign нужно вот так прописывать
$sign = md5("application_key={$this->params['public_key']}fields=email,first_name,last_name,birthdayformat=jsonmethod=users.getCurrentUser" . md5("{$tokenResponse['access_token']}{$this->client_secret}"));
Порядок такой,что после application_key сразу нужно fields прописывать
А здесь уже без разницы как вписывать,порядок не нужен:
$params = array(
'method' => 'users.getCurrentUser',
'access_token' => $tokenInfo['access_token'],
'application_key' => $public_key,
'format' => 'json',
'fields' => 'email,first_name,last_name,birthday',
'sig' => $sign
);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы