-
Постов
2 517 -
Зарегистрирован
-
Посещение
-
Победитель дней
265
Весь контент Равиль Зарипов (ZuBy)
-
а ну тут понятно, из-за кода кривого
-
да бывает, ждём результатов. если что пишите, по возможности поможем
-
а что не получилось, все работает нужно было заменить вы собираете photo_{owner_id}_{photo_id} а нужно photo{owner_id}_{photo_id} сайт заменил на свой)
-
вы видели что вк присылает? там хитрый(неправильный) json лежит, посмотрите через этот форматер. там есть такое: "photo":"[....]" на вскидку можно сказать что это массив данных, по факту это строка. поэтому внутрь вы не можете "зайти" нужно сделать его правильным убрав " до и после []
-
у вас ошибка Также в поле attachments может быть указана ссылка на внешнюю страницу, которую Вы хотите разместить в записи, например: photo66748_265827614,http://habrahabr.ru а вы собираете photo_{owner_id}_{photo_id} при этом photo_id пустое вы не учли в процедуре procedure TForm1.RESTRequest1AfterExecute(Sender: TCustomRESTRequest); что ответы не у всех response, поэтому чтение media_id не происходит {"response":{"upload_url" {"server":630928,"photo": {"response":[{"
-
получилось?
-
memo2.Lines.Add( xResp.O['Response'].I['count'].ToString );
-
ай-яй-яй var JS : TJSONObject; JSAr : TJSONArray; s : string; i:integer; begin s := Memo2.Text; JS := TJSONObject.ParseJSONValue(s) as TJSONObject; if Assigned(JS) then begin JS := TJSONObject.ParseJSONValue(JS.GetValue('response').ToString) as TJSONObject; JSAr := TJSONObject.ParseJSONValue(JS.GetValue('items').ToString) as TJSONArray; Form2.Memo1.Lines.Clear; for i := 0 to JSAr.Count - 1 do begin JS := TJSONObject.ParseJSONValue(JSAr.Items[i].ToString) as TJSONObject; // внутри цикла нужно Memo2.Lines.Add('id: ' + JS.GetValue('id').Value); Memo2.Lines.Add('first_name: ' + JS.GetValue('first_name').Value); Memo2.Lines.Add('last_name: ' + JS.GetValue('last_name').Value); Memo2.Lines.Add('photo_100: ' + JS.GetValue('photo_100').Value); end; JS.Free; end;
-
ок, у вас ошибка тут JS := TJSONObject.ParseJSONValue(JSAr.Items[0].ToString) as TJSONObject; это массив данных, вам нужно было указать какой элемент вы хотите получить
-
используйте XSuperObject, код будет такой procedure TForm4.Button1Click(Sender: TObject); // uses XSuperObject; var xResp, xObj: ISuperObject; xItems: ISuperArray; j: Integer; begin xResp := so(Memo1.Text); xItems := xResp.O['Response'].A['Items']; for j := 0 to xItems.Length - 1 do begin xObj := xItems.O[j]; with ListView1.Items.Add do begin Text := xObj.S['first_name'] + ' ' + xObj.S['last_name']; end; end; end;
-
интересно посмотреть как вы получили токен, я пробовал получать для гугл (давно правда это было, в XE7/8 )
-
у меня на устройстве нет тормозов кстати
-
ну вы же понимаете как работает анимация? 1) реорганизация положения контрола на родителе 2) реорганизация положения компонентов внутри контрола 3) сработает ресайз контрола и всех его дочерних компонентов, что вызовет содержащий в обработчиках код если высота контрола для которого применяется анимация равна 100 пикселям, все это повторится 100 раз
-
когда я пробовал работать с OAuth 2.0, не было возможности получить контент страницы из браузера (кроме Windows), чтобы спарсить токен. а без этого никак
-
Вы давали ссылку, там был код Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("image/gif"); intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File("example.gif"))); intent.setPackage("com.vkontakte.android"); startActivity(intent);
-
Присоединяюсь к поздравлению!