Vk api код города

Если вы впервые занялись ботом рекомендую прочитать и скачать нужные файлы с первой статьи про бота вк
После чего ознакомиться с библиотекой RedBeanPHP и подключить к вашему боту Статья про библиотеку
Или можете скачать архив в котором уже есть все нужные файлы, но не забудьте заменить данные в bd.php и bot.php на свои
kotoff_net.zip

Если у вас уже есть бот, то просто добавляем команды в пределах:

if ($data->type == ‘message_new’) < // Тут >
P.S. Все команды из этой статьи будут в этом самом промежутке

Аккаунты:

Создадим переменную $user в которой найдем пользователя (используем RedBeanPHP, читайте статью указанную выше для понимания)

$user = R::findOne(‘users’, ‘user_id = ?’, [$id]); //ищем пользователя с user_id от вк
Далее проверяем на существование пользователя
if(!$user)< // $user вернет нам true или false, а знак ! укажет нам на проверку false // тут код регистрации пользователя >

Перед регистраций давайте (перед переменной $user) получим имя пользователя, дабы его записать в базу:

Как написать бота на Python для ВКонтакте? Часть 1. Установка и начало программы.

$userInfo = $vk->request(«users.get», [«user_ids» => $id]); $first_name = $userInfo[0][‘first_name’];

И вернемся к регистрации пользователя. Вместо // тут код. пишем нужный вам код. Пример у меня получился такой:

Перевод валюты:

Создаем команду ‘перевод’
ВАЖНО: Для работы с командами как в этой статье нужно заменить ваши переменные (под спойлером):

// ———- Переменные ———- $peer_id = $data->object->peer_id; $id = $data->object->from_id; $chat_id = $peer_id — 2000000000; // ———- Сообщение ———- $message = $data->object->text; $messages = explode(» «, $message); $cmd = mb_strtolower(str_replace(array(«/», «!»), «», $messages[0])); $args = array_slice($messages, 1); // ———- Другое ———- $reply_message = $data->object->reply_message; $reply_author = $data->object->reply_message->from_id; $chat_act = $data->object->action; $fwd_messages = $object[‘fwd_messages’]; if(empty($fwd_messages) !empty($reply_message)) < array_push($fwd_messages, $reply_message); >if(empty($reply_message) !empty($fwd_messages))

Еще по теме:  Что пишут взломщики в ВК

Для проверки пришедшего сообщения (на первое слово) используем $cmd
В проверке используйте in_array(Что_проверяем, [‘массив’, ‘слов’, ‘где одно из слов’, ‘может быть равна’, ‘проверяемому значению’]

if(in_array($cmd, [‘перевод’, ‘перевести’, ‘передать’]))< // Код >

Теперь поработаем с $args (из выше данных вам переменных)
$args — массив из пришедшего нам сообщения без первого слова

if($args[0] == » $reply_author == »)< $vk->sendMessage($peer_id, «Вы не указали пользователя, которому желаете передать деньги»); >else< // определяем от куда узнаем кому перевести >
Весь код команды с комментариями:

Команда ‘Онлайн’:

Команда Онлайн с пояснениями внутри!

VK-API Пример выполнения кода методом execute и users get


Команда ‘Погода’:

Для данной команды будем использовать OpenWeatherAPI, для чего регистрируемся тут
Дальше вам нужно создать ключ в API_KEYS, который будет использоваться в коде

Код команды в боте с комментариями:

if(in_array($cmd, [‘погода’, ‘погодка’, ‘weather’]))< $city = implode(» «, $args); // Объединили текст после команды в единый if($city == »)< // Проверка на указание города $vk->sendMessage($peer_id, «Вы не указали город. Пример: Погода Москва»); exit; // Завершаем скрипт т.к. не указан город > $OWApi_key = »; // Ваш ключ от OpenWeatherMap $weather=json_decode(file_get_contents(«https://api.openweathermap.org/data/2.5/weather?q=appid=)); // Составили запрос к OpenWeatherMap if(empty($weather))< // Если ответ не пришел $vk->sendMessage($peer_id, «✖ Ой.. Прости я не поняла, что это за город такой «); >else< // Если ответ есть, то составляем текст для вывода $list = «В городе » . $weather->name; // Название города $list .= «n Погода: » . $weather->weather[0]->description; // Название погода (пример: облачно/солнечно) $list .= «n Ветер: » . $weather->wind->speed. » m/s «; // Скорость ветра $list .= «n Температура: » . $weather->main->temp . «°C»; // Температура $list .= «n☁ Облачность: » . $weather->clouds->all . «%»; // Облачность в процентах $list .= «n Давление: » . $weather->main->pressure . » мм.рт.ст»; // Давление $vk->sendMessage($peer_id, $list); // Вывели погоду > >

Еще по теме:  Izheco vk розовый снежок инструкция на русском языке

В коде ищем $OWApi_key = »; и вставляем ключ с сайта в скобки ‘ключ’

UPDATE: Если у вас не регистрируется аккаунт на сайте OpenWeather, тогда возьмите мой ключик:
c6c48db8e2970d6002267e6bcba21e1d

Результат:

Новость отредактировал: アレクセイ サモシュキン — 15-10-2019, 14:40
Причина: Добавил ключ для openWeatherApi

  • アレクセイ サモシュキン
  • 29.09.2019
  • 13 301
  • 34
  • 11

Источник: kotoff.net

вывод названия города

Re: вывод названия города

Сообщение Alazaur » 12 ноя 2011, 12:15

А что у Вас в переменной cids? Если идентификатор(ы) города(ов) то получать название(я) нужно так:

VK.api(‘places.getCityById’, , onCityLoaded,qError);

Re: вывод названия города

Сообщение gaponj88 » 12 ноя 2011, 12:20

Пробывал и так ничего не выводит(

Re: вывод названия города

Сообщение Alazaur » 12 ноя 2011, 12:34

А можно на код целиком глянуть?

Re: вывод названия города

Сообщение gaponj88 » 12 ноя 2011, 12:37

public function Main()< var flashVars:Object = stage.loaderInfo.parameters as Object; api_id = flashVars[‘api_id’]; viewer_id = flashVars[‘viewer_id’]; sid = flashVars[‘sid’]; secret = flashVars[‘secret’]; // инициализация VK = new APIConnection(flashVars); var execute_code_String=’return API.getProfiles();’ sendd.addEventListener(MouseEvent.CLICK, send_btnClick); VK.api(‘execute’,, friendsLoaded, onError); VK.api(‘getProfiles’, < uids: flashVars[‘viewer_id’],fields:’photo_big,bdate,city,country’>, onProfileLoaded, onError); VK.api(‘places.getCityById’, , onCountryLoaded,qError); > function send_btnClick(e: MouseEvent):void< VK.api(‘wall.savePost’, < wall_id:wall_id,photo_id:photo_id,message:message>, load_succes, oError); removeChild(sendd); removeChild(combo);>private function onProfileLoaded(data: Object):voidprivate function onCountryLoaded(data: Object):void< disp1.smotr4.appendText(data[0][‘cid’] + ‘ ‘ + data[0][‘name’]); >private function load_succes(data: Object):void < result_tf.text = data.post_hash; VK.callMethod(«saveWallPost»,data.post_hash);>private function oError(data: Object):void< result_tf.text = data.error_msg;>private function qError(data: Object):void< result2.text = data.error_msg;>private function friendsLoaded(data: Object):void

Re: вывод названия города

Сообщение Alazaur » 12 ноя 2011, 13:53

Потому что Вы вызываете метод places.getCityById когда еще переменная cids_1 не определена. вот эту вот строчку

VK.api(‘places.getCityById’, , onCountryLoaded,qError);
нужно писать в функции onProfileLoaded после
cids_1 = data[0][‘city’];

Источник: flapps.ru

Получение списка стран через VK API

Мне нужен список стран. Решил использовать ВК АПИ. В документации пишет, что метод можно использовать без доступа ключа. Я библиотеку подключил, но не знаю, как правильно достать данные. Кто знает, как это сделать ?

Еще по теме:  Сколько уровней в игре инди кот Вконтакте

введите сюда описание изображения

Вот скрин, как не распознает базу

UPDATE

08-06 11:08:23.294 21949-21949/com.project.samuliak.psychogram E/AndroidRuntime: FATAL EXCEPTION: main Process: com.project.samuliak.psychogram, PID: 21949 java.lang.RuntimeException: Unable to start activity ComponentInfo: java.lang.NullPointerException: Attempt to invoke virtual method ‘java.lang.String android.content.Context.getPackageName()’ on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘java.lang.String android.content.Context.getPackageName()’ on a null object reference at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:374) at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:369) at com.vk.sdk.VKAccessToken.tokenFromSharedPreferences(VKAccessToken.java:236) at com.vk.sdk.VKAccessToken.currentToken(VKAccessToken.java:275) at com.vk.sdk.api.httpClient.VKHttpClient.requestWithVkRequest(VKHttpClient.java:81) at com.vk.sdk.api.VKRequest.getPreparedRequest(VKRequest.java:305) at com.vk.sdk.api.VKRequest.getOperation(VKRequest.java:323) at com.vk.sdk.api.VKRequest.start(VKRequest.java:392) at com.vk.sdk.api.VKRequest.executeWithListener(VKRequest.java:233) at com.project.samuliak.psychogram.Activity.main.registration.RegistrationDoctorActivity.initUI(RegistrationDoctorActivity.java:209) at com.project.samuliak.psychogram.Activity.main.registration.RegistrationDoctorActivity.onCreate(RegistrationDoctorActivity.java:67) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

Ответы (1 шт):

Вам нужно почитать про методы API, и руководствуясь инструкцией SDK отправлять запрос к API VK.

Вот запрос который возвращает список всех стран:

VKRequest request = VKApi.database().getCountries(VKParameters.from(VKApiConst. NEED_ALL, «1»));

И соответственно отправка запроса, вместе со слушателем (который выполнит действия в зависимости от того был запрос успешным или нет):

Источник: husl.ru

Рейтинг
( Пока оценок нет )
Загрузка ...