#javascript #flutter
Вопрос:
Я пытаюсь улучшить пакет flutter_insta, чтобы возвращать более 12 фотографий из ленты пользователей. Однако мое путешествие останавливается на следующей проблеме:
Итак, это моя улучшенная версия кода пакета flutter_insta для получения данных профиля
Future getProfileData(String username) async {
var res = await http.get(Uri.encodeFull(url username "/?__a=1"));
var data = json.decode(res.body);
var graphql = data['graphql'];
var user = graphql['user'];
String id = user['id'].toString();
var biography = user['biography'];
var media = user['edge_owner_to_timeline_media'];
var hasNextPage = media['page_info']['has_next_page'];
String cursorEnd = media['page_info']['end_cursor'].toString();
_bio = biography;
var myfollowers = user['edge_followed_by'];
var myfollowing = user['edge_follow'];
_followers = myfollowers['count'].toString();
_following = myfollowing['count'].toString();
_website = user['external_url'];
_imgurl = user['profile_pic_url_hd'];
if(hasNextPage){
print("debug");
if (cursorEnd != null amp;amp; cursorEnd.length >= 2) {
cursorEnd = cursorEnd.substring(0, cursorEnd.length - 2);
}
String fullUrl = "https://www.instagram.com/graphql/query/?query_hash=58b6785bea111c67129decbe6a448951amp;variables={"id":"" id "","first":50,"after":"" cursorEnd "=="}";
var allPostsRes = await http.get(Uri.encodeFull(fullUrl));
print(fullUrl);
print("-");
print(allPostsRes);
print("-");
var allPostsData = json.decode(allPostsRes.body);
print(allPostsData);
var user2 = allPostsData['data']['user'];
print("debug");
_feedImagesUrl = await user2['edge_owner_to_timeline_media']['edges'].map<String>((image) => image['node']['display_url'] as String).toList();
print(_feedImagesUrl);
}
else{
print("debug2");
_feedImagesUrl = user['edge_owner_to_timeline_media']['edges'].map<String>((image) => image['node']['display_url'] as String).toList();
}
this._username=username;
}
Из функций отладки печати (исключая «печать(данные)») я получаю следующее:
I/flutter (13088): debug
I/flutter (13088): https://www.instagram.com/graphql/query/?query_hash=58b6785bea111c67129decbe6a448951amp;variables={"id":"44779974777","first":50,"after":"QVFDQjYxQV9TRkREbEdqalpCWmI1R290dXZ6TkNpUW5LVHdxMlVlc2ViMVRlVVVMTC1mNjFJSUoyei1xdmZ1QTFRaVF4OFZpbk9sTmhmaWRMcjRuWjFFQQ=="}
I/flutter (13088): -
I/flutter (13088): Instance of 'Response'
I/flutter (13088): -
I/flutter (13088): {message: Variables are invalid JSON., status: fail}
Поэтому мои попытки останавливаются при json.decode(allPostsRes.body);
возврате {сообщение: Переменные являются недопустимыми JSON., статус: сбой}
Может ли кто-нибудь точно определить, почему это так и почему это не работает так же http.get(Uri.encodeFull(url username "/?__a=1"))
, как в исходном коде flutter_insta
Возможно, мне не хватает некоторых базовых знаний по веб-очистке, если вы так это называете, но если кто-то сможет точно определить или привести меня к нужным документам или к ответу, я был бы признателен за любую помощь!