Closed AndreyPanov closed 8 years ago
По запросу могу .m файл скинуть для лучшей читабельности кода.
1) Что за кнопка share?
2) На iPad с последними обновлениями почему-то сломались параметры.
Ждём, пока пропустят обновление клиента.
3) ShareDialog не будет работать, пока нет доступа к photos (см. второй пункт).
4) В семпле работает правильно @[@"-10889156_348122347",@"7840938_319411365",@"-60479154_333497085"]
Где указано неправильно?
@Dreddik Подтверждаю проблему номер 1. Код ниже привязан к UIButton. Если нажать кнопку один раз, то выведется "Invalid user id". Дальше кнопка работает нормально (VKRequest выполняется успешно). Кстати, можно ли как-то пофиксить выскакивающий и сразу же исчезающий view controller с авторизацией(когда выполняется VKAuthorize)? Может, я что-то упускаю? VKSdk.initializeWithDelegate(self, andAppId: "1234567") let scope = NSMutableArray() scope.addObject("friends,profile info,offline,wall") VKSdk.authorize(scope as [AnyObject]) let audioReq: VKRequest = VKApi.users().get() audioReq.executeWithResultBlock({ response in let json = JSON(response.json) self.testLoginLabel.text = json[0]["first_name"].string! + " " + json[0]["last_name"].string! for (key, subJson) in json[0] { if let title = subJson[key].string { println(title) } }
Коллеги, добрый день! Сейчас постараюсь подробно описать, что я делаю и какие проблемы возникают. Задача Дать возможность из приложения под iPad шарить картинку+текст+ссылку. Если установлено ВК приложение, то приложение авторизуется через него, если нет, то через Safari.
Как стартовое условие я интегрировал готовый фреймворк и VKSdkResources.bundle В AppDelegate прописал [VKSdk processOpenURL:url fromApplication:sourceApplication]; в методе
(BOOL)application:(UIApplication )application openURL:(NSURL )url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;
В самом контроллере шаринга я прошу вот такие права доступа: SCOPE = @[VK_PER_WALL, VK_PER_PHOTOS, VK_PER_NOHTTPS];
Инициализирую [VKSdk initializeWithDelegate:self andAppId:@"4831304"]; if ([VKSdk wakeUpSession]) { [self startWorking]; } else { [VKSdk authorize:SCOPE revokeAccess:YES]; }
Для постинга в начале загружаю картинку в ВК, после вызываю контроллер:
(void)startWorking { VKRequest _request = [VKApi uploadWallPhotoRequest:shareImage parameters:[VKImageParameters jpegImageWithQuality:.9] userId:0 groupId:0]; [request executeWithResultBlock:^(VKResponse response){ NSLog(@"Photo: %@", response.json); VKPhoto photoInfo = [(VKPhotoArray)response.parsedModel objectAtIndex:0]; NSString photoAttachment = [NSString stringWithFormat:@"%@_%@", photoInfo.owner_id, photoInfo.id]; VKShareDialogController \ shareDialog = [VKShareDialogController new]; shareDialog.text = _shareMessage; shareDialog.shareLink = [[VKShareLink alloc] initWithTitle:@"App Store" link:_shareLink]; shareDialog.vkImages = @[photoAttachment]; [shareDialog setCompletionHandler:^(VKShareDialogControllerResult result) { switch (result) { case VKShareDialogControllerResultCancelled: break; case VKShareDialogControllerResultDone: if (_isBookForShare) { [[NSNotificationCenter defaultCenter] postNotificationName:@"ShareBookSuccess" object:nil]; } break; default: break; } [self dismissViewControllerAnimated:YES completion:nil]; }]; [self presentViewController:shareDialog animated:YES completion: ^{ [SVProgressHUD dismiss]; }];
} errorBlock:^(NSError error){ UIAlertView alert = [[UIAlertView alloc] initWithTitle:@"Ошибка" message:error.localizedDescription delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; }]; }
Вот такие методы делегата:
Теперь привожу список проблем:
Прокомментируйте, пожалуйста. Заранее спасибо.