хочу, чтобы success менялся на true или false в зависимости от ответа api. Код:
private bool success;
private void VKMessage(string msg) {
string url = "https://api.vk.com/method/messages.send?user_id=" + config.ID + "&message=" + msg + "&v=5.68&access_token=" + config.Token;
string type = "message";
webrequest.Enqueue(url, null, (code, response) => GetCallback(code, response, type), this);
}
private void VKGroupPost(string msg) {
string url = "https://api.vk.com/method/wall.post?owner_id=-" + config.Group + "&message=" + msg + "&from_group=1&v=5.68&access_token=" + config.Token;
string type = "post";
webrequest.Enqueue(url, null, (code, response) => GetCallback(code, response, type), this);
}
private void VKGroupStatus(string msg) {
string url = "https://api.vk.com/method/status.set?group_id=" + config.Group + "&text=" + msg + "&v=5.68&access_token=" + config.Token;
string type = "status";
webrequest.Enqueue(url, null, (code, response) => GetCallback(code, response, type), this);
}
void GetCallback(int code, string response, string type) {
if(!response.Contains("error"))
{
success = true;
} else {
success = false;
}
}
[ConsoleCommand("vk")]
void vk(ConsoleSystem.Arg args) {
if(args.Args[0].ToLower() == "status") {
if(args.Args[1].ToLower() == "set") {
string status = "";
for (int i = 2; i < args.Args.Length; i++)
status += args.Args[i] + " ";
VKGroupStatus(Uri.EscapeDataString(status));
if(success == true) {
PrintWarning("Status \"" + status + "\" was success set");
} else {
PrintError("Status \"" + status + "\" can't be set");
}
}
} else
if(args.Args[0].ToLower() == "post") {
string post = "";
for (int i = 1; i < args.Args.Length; i++)
post += args.Args[i] + " ";
VKGroupPost(Uri.EscapeDataString(post));
if(success == true) {
PrintWarning("Post \"" + post + "\" was success posted on the wall");
} else {
PrintError("Post \"" + post + "\" can't be posted on the wall");
}
} else
if(args.Args[0].ToLower() == "message") {
string message = "";
for (int i = 1; i < args.Args.Length; i++)
message += args.Args[i] + " ";
VKMessage(Uri.EscapeDataString(message));
if(success == true) {
PrintWarning("Message \"" + message + "\" was success sent");
} else {
PrintError("Message \"" + message + "\" can't be sent");
}
}
}
Однако при таком коде если ввести в консоли команду vk message test, то сообщение уходит в ВК, но ответ получаю Message "test" can't be sent, а должно быть Message "test" success sent. Где у меня ошибка?
UPDATE:
Заметил, что если выполнить одну и ту же команду (можно менять текст), т.е.:
vk message text1
- будет false
все последующие команды
vk message text2
vk message text3
и т.д. будут true
if(!response.Contains("error"))
{
/*bool*/ success = true;
} else {
/*bool*/ success = false;
}
или
success = !response.Contains("error");
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пытаю выполнить вот такой запрос INSERT INTO catalog_product_entity_int(attribute_id, store_id, entity_id, value) VALUES (558, 0, (SELECT cpeentity_id FROM catalog_product_entity cpe LEFT JOIN catalog_product_entity_int cpei ON cpe
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Не могу понять в чем разница между этими вариантамиДелал тестовое задание
Пытаюсь в dle cms сохранять дополнительную информацию о пользователе в базу данных, при этом дополнительные данные получаю из JSON со стороннего...