dazle
@dazle
Хороший электрик, но в душе программист

Почему не получается парсить баланс своего яндекс кошелька?

Я хотел бы на своем сайте иметь общий фонд сайта. Допустим пользователь за 50 руб поменял ник аватарку и город и вся сумма внесенная им отображалась у меня на сайте в реальном времени, дабы в дальнейшем сделать призовые тем пользователям которые заняли 1-е места.
Я могу парсить с яндекса новости:
<?
function getNewss () {
static $newss = [];
if (empty($newss)) {
$subjects = file_get_contents('http://yandex.ru/');
$patterns = '|<ol\sclass="list news__list">(.*)</ol>|isU';
$parss = preg_match_all($patterns, $subjects, $newss);
$newss = empty($newss) ? [] : $newss[0];
}
return $newss;
}
function getRandomNews () {
$newss = getNewss();
return $newss[array_rand($newss)];
}
?>
<span class="sign__word10">Новости дня</span><br>
<div class=news22>
<?= getRandomNews() ?>
</div>

, но баланс яндекс кошелька не получается. Может потому что он выдает мне массив, а баланс составляет только одно число. Подставлял разные теги относящиеся именно к балансу кошелька и парсил не только с главной страницы яндекса, но и с самого яндекс кошелька:
$subjects2 = file_get_contents('http://yandex.ru/');
$patterns2 = '|<div\sclass="desk-notif-card__card">(.*)</div>|isU';
$parss2 = preg_match_all($patterns2, $subjects2, $newss2);
print_r($newss2);
  • Вопрос задан
  • 497 просмотров
Решения вопроса 1
pligin
@pligin
быдлокодер
Простой сапописный PHP класс для работы с кошельком Яндекс Денег
https://drive.google.com/file/d/1AHb1buWaUpAQ0FlXS...
include 'yandex.class.php;
$ya = new yandex('YandexAccessToken');
$r = $ya->accountInfo();
if (!empty($r)){
     $balance = $r['balance'];
}

Как создать приложение и получить токен:
- Скачать файлик yandex_uri.php с простой формой и положить в корень сайта
https://drive.google.com/file/d/1AQa96ZG9OqOKgF0o5...
- Создание приложения:
Перейти по адресу https://money.yandex.ru/myservices/new.xml и создать приложение:
- Название приложения: любое
- Адрес сайта: адрес Вашего сайта
- Email для связи: любой
- Redirect URI: https://your_site.ps/yandex_uri.php
- Использовать проверку подлинности приложения (OAuth2 client_secret): отметить
- нажать "Подтвердить"
На следующей странице Вам выдадут client_id и client_secret - сохраните их
- Получение токена:
- Откройте файл yandex_uri.php и вставьте вместо THIS_CLIENT_ID полученный ранее client_id и вместо THIS_CLIENT_SECRET полученный ранее client_secret. Сохраните файл
- Перейдите по адресу https://your_site.ps/yandex_uri.php нажмите кнопку "Get Code"
- На странице авторизации вашего приложения укажите суточный лимит, который можно использовать через приложение и разрешите доступ.
- После предыдущего действия Вы вернетесь на https://your_site.ps/yandex_uri.php, нажмите кнопку "Get Token", после чего вы попадете на страницу яндекс денег, где будет указан Ваш access_token - сохраните его.
Файл yandex_uri.php удалить
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Хм. PHP-скрипт на некоем сервере парсит главную страницу с сайта yandex.ru? С новостного сайта? Нет, не с сайта денег money.yandex.ru, а именно с новостного?

При этом PHP-скрипт сначала ДОЛЖЕН сделать полноценный вход/login на сайт с именем/паролем, сохранить cookies авторизации, и потом с этими cookies обращаться на сайт - только тогда ему будет корректно показан его денежный аккаунт. У вас ничего этого в скрипте НЕТ.

ИТОГО: Изучайте вопрос, переделывайте скрипт.

P.S. Сделайте вывод всей страницы, полученной с yandex.ru - и увидите, что данных о деньгах там нет, от слова "вообще". Либо я катастрофически не прав.
Ответ написан
sergiks
@sergiks Куратор тега PHP
♬♬
Есть же API Яндекс.Денег, есть официальный PHP SDK.

Можно и баланс запрашивать и даже переводы делать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы