Найти - Пользователи
Полная версия: Conky + vk api + python
Начало » Web » Conky + vk api + python
1
Funk2256
Доброго всем времени суток уважаемые.
Хотелось бы пообщаться со знающими людьми.
Если кратко. То хотелось бы научить системный монитор в linux под названием Conky отображать 1 пост определенной группы из вк. Т.к. с python я только начал знакомиться, пробежался немного по синтаксису, и пытаюсь вникнуть в него. Собственно что уже сделано

Если я правильно понимаю, то мне нужно менять только одну часть кода, Не хочется изобретать велосипед хочется разобраться, все вплоть до авторизации мне понятно. Но

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
 
import vk_api
def main():
    """ Пример получения последнего сообщения со стены """
    login, password = '****@xakep.ru', '******'
    vk_session = vk_api.VkApi(login, password)
    try:
        vk_session.authorization()
    except vk_api.AuthorizationError as error_msg:
        print(error_msg)
        return
    vk = vk_session.get_api()
    """
        VkApi.method позволяет выполнять запросы к API. В этом примере
        используется метод wall.get (https://vk.com/dev/wall.get) с параметром
        count = 1, т.е. мы получаем один последний пост со стены текущего
        пользователя.
    """
   response = vk.wall.get(owner_id=489, count=1)  # Используем метод wall.get
    if response['items']:
        print(response['items'][0])
if __name__ == '__main__':
    main()

Мной изменена строчка. Добавленно
 response = vk.wall.get(owner_id=489, count=1)
точнее добавленно только owner_id=489,
Работа скрипта при запуске втерминале и выхлоп:
funk@funk-HP-Pavilion-g6-Notebook-PC:~$ cd ~/.scripts
funk@funk-HP-Pavilion-g6-Notebook-PC:~/.scripts$ ./vk.py
/usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
SNIMissingWarning
/usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
/usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
{u'attachments': , u'text': u'', u'comments': {u'count': 0, u'can_post': 0}, u'post_type': u'post', u'likes': {u'count': 0, u'can_publish': 0, u'can_like': 1, u'user_likes': 0}, u'reposts': {u'count': 0, u'user_reposted': 0}, u'date': 1455399415, u'from_id': 107677774, u'id': 3129, u'post_source': {u'type': u'vk'}, u'owner_id': 489}
Как понимаю скрипт сработал без ошибок.
То что видим в коньках:


Кто подскажет в чем соль и суть?
FishHook
Вы видите json, который получили в ответ по вашему запросу, а что вы собственно рассчитывали увидеть?
Funk2256
А мне хотелось бы видеть содержание поста
Funk2256
Возможно я что то нет так объяснил
FishHook
Вы отправляете запрос, получаете ответ.
Вы ответ получили? Да, получили.
Если вы рассчитывали увидеть в ответе что-то другое, значит вы неправильно сформулировали запрос, либо вы просто не понимаете языка на котором вам отвечают. У вас проблемы с API вконтакта, вы от нас чего хотите то? Обращайтесь к Дурову в техподдержку, он за это деньги получает.
ZerG
Судя по картинке - код на 3 питоне а запускется на 2
Кроме того - вам сначала нужно добиться просто вывести сообщение. А потом уже пихать в коньки его!!!
Funk2256
Я это конечно понимаю, мне нужно добиться получения нормального текста, ок. только как это сделать? Может мануалы или еще что то подскажете?
FishHook
Funk2256
вот это
{u'attachments': , u'text': u'', u'comments': {u'count': 0, u'can_post': 0}, u'post_type': u'post', u'likes': {u'count': 0, u'can_publish': 0, u'can_like': 1, u'user_likes': 0}, u'reposts': {u'count': 0, u'user_reposted': 0}, u'date': 1455399415, u'from_id': 107677774, u'id': 3129, u'post_source': {u'type': u'vk'}, u'owner_id': 489}
и есть нормальный стандартный ответ от сервера в формате json, другого вы не получите. Тот факт, что в этом ответе вы не видите нужной вам информации означает лишь одно: ВЫ ЗАДАЕТЕ НЕВЕРНЫЙ ВОПРОС СЕРВЕРУ.
Если вас интересует, какой же запрос будет верным, то вы адресуете его не туда - это форум по питону, а не техподдержка контакта, только разработчик АПИ знает, какие запросы в его системе валидны и что они вернут. Как я вам уже говорил, связывайтесь с разработчиками АПИ.
Ну да, вы пишите на питоне, но АПИ вконтакта - это не питон, это собственность господина Дурова. Он волен изменять свои интерфейсы как ему угодно, вот к нему и обращайтесь.
ZerG
Ваш вариант
# -*- coding: utf-8 -*-
import vk_api
def main():
    login, password = 'user', 'passs'
    vk_session = vk_api.VkApi(login, password)
    try:
        vk_session.authorization()
    except vk_api.AuthorizationError as error_msg:
        print(error_msg)
        return
    vk = vk_session.get_api()
    response = vk.wall.get(count=1)  # Используем метод wall.get
    if response['items']:
        result = (response['items'][0]).get('text')
        print(result)
if __name__ == '__main__':
    main()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB