Задать вопрос
@kttotto
пофиг на чем писать

Не компилируется code в execute. Как сделать цикл?

По документации цикл делается подобным образом
var a = 1; var b = 10; while (b != 0) { b = b - 1; a = a+1; }; return a;

У меня это выглядит так
var posts=API.newsfeed.search({"q":"Test"});
var ownerIds=posts.items@.from_id;
var i=0;
var gIds=[];
var uIds=[];
while(i<ownerIds.length)
{
  if(ownerIds[i]<0)
  {
    gIds.push(ownerIds[i]);    
  };
  i=i+1;
};
return gIds;

На этот код возвращается ошибка
"error_code":12,"error_msg":"Unable to compile code:  ';' expected

Опытным путем установил, что проблема в строке i=i+1;
Если эту строку убрать и while чутка переписать без сравнения с i, то он компилится и возвращается нормальный результат.

Причем я пробовал и сам пример из доков запускать. Отваливается именно на строке b = b - 1;

Сам код вызова на C#, если это имеет значение
using (var client = new HttpClient())
{
    client.DefaultRequestHeaders.Accept.Clear();

    var res = client.GetAsync($"https://api.vk.com/method/execute?code={queryParam}&access_token={token}&v=5.62").Result;
    var answer = res.Content.ReadAsStringAsync().Result;
}

Где у меня ошибка? Уже кучу времени потратил.

P.S.:
Опубликовал вопрос. Попробовал код на странице доков в vk и он отработал. И тут до меня дошло, что дело в '+'. Get запрос его за пробел принимает. Но проблема сохранилась даже после того как я сделал Urlencode. На стороне vk он все равно этот плюс не видит и уходит в вечный цикл.

Помогите советом, как это решить)
  • Вопрос задан
  • 964 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@kttotto Автор вопроса
пофиг на чем писать
Вообщем, сделал запрос через POST и все нормально. Через GET так и не удалось отправить +/-, даже кодируя, vk возвращает ошибку.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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