AndrewShmig / Vkontakte-iOS-SDK-LV

[iOS] Powerful & flexible Vkontakte iOS SDK Latest Version
79 stars 23 forks source link

Постинг на стену #32

Closed yarchiko closed 11 years ago

yarchiko commented 11 years ago

При постинге на стену, возвращается ошибка. сообщение о ошибке из ответа "error_msg" = "Permission to perform this action is denied for non-standalone applications";

делаю постинг так:

может еще какие параметры нужны? ссылка на апи http://vk.com/dev/wall.post

Спасибо!

AndrewShmig commented 11 years ago

Лучше делать вот так:

[[VKUser currentUser] wallPost:@{ @"owner_id" : @([VKUser currentUser].accessToken.userID), 
                                                    @"message" : @"test" }]; 

А вот почему ошибку выдаёт, пока не могу сказать. В течение минут 10-15 проверю и отпишусь.

AndrewShmig commented 11 years ago

Проверил, работает. Вот ответ:

response: {
    response =     {
        "post_id" = 3100;
    };
}

Вот исходный код:

//
//  ASAAppDelegate.m
//  Project
//
//  Created by AndrewShmig on 6/28/13.
//  Copyright (c) 2013 AndrewShmig. All rights reserved.
//

#import "ASAAppDelegate.h"
#import "ASAViewController.h"
#import "VKAccessToken.h"
#import "VKUser.h"

static NSString *const kVKAppID = @"3899649";
static NSString *const kVKPermissionsArray = @"photos,friends,wall,audio,video,docs,notes,pages,status,groups,messages";

@implementation ASAAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    [[VKConnector sharedInstance] setDelegate:self];
    [[VKConnector sharedInstance] startWithAppID:kVKAppID
                                      permissons:[kVKPermissionsArray componentsSeparatedByString:@","]];

    // Override point for customization after application launch.
    self.viewController = [[ASAViewController alloc] initWithNibName:@"ASAViewController" bundle:nil];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

- (void)VKConnector:(VKConnector *)connector willShowModalView:(VKModal *)view
{
    NSLog(@"%s", __FUNCTION__);
}

- (void)VKConnector:(VKConnector *)connector willHideModalView:(VKModal *)view
{
    NSLog(@"%s", __FUNCTION__);
}

- (void)VKConnector:(VKConnector *)connector accessTokenInvalidated:(VKAccessToken *)accessToken
{
    NSLog(@"%s", __FUNCTION__);
}

- (void)VKConnector:(VKConnector *)connector accessTokenRenewalFailed:(VKAccessToken *)accessToken
{
    NSLog(@"%s", __FUNCTION__);
}

- (void)VKConnector:(VKConnector *)connector accessTokenRenewalSucceeded:(VKAccessToken *)accessToken
{
    NSLog(@"%s", __FUNCTION__);

    [[VKUser currentUser] setDelegate:self];
    [[VKUser currentUser] wallPost:@{@"owner_id" : @([VKUser currentUser].accessToken.userID),
                                     @"message" : @"test"}];
}

- (void)VKConnector:(VKConnector *)connector connectionErrorOccured:(NSError *)error
{
    NSLog(@"%s", __FUNCTION__);
    NSLog(@"CONNECTION error: %@", error);
}

- (void)VKConnector:(VKConnector *)connector parsingErrorOccured:(NSError *)error
{
    NSLog(@"%s", __FUNCTION__);
    NSLog(@"error: %@", error);
}

- (void)VKRequest:(VKRequest *)request response:(id)response
{
    NSLog(@"%s", __FUNCTION__);
    NSLog(@"response: %@", response);
}

- (void)VKRequest:(VKRequest *)request responseErrorOccured:(id)error
{
    NSLog(@"%s", __FUNCTION__);
    NSLog(@"error: %@", error);
}

- (void)VKRequest:(VKRequest *)request
       captchaSid:(NSString *)captchaSid
     captchaImage:(NSString *)captchaImage
{
    NSLog(@"%s", __FUNCTION__);
    NSLog(@"captchaSid: %@", captchaSid);
    NSLog(@"captchaImage: %@", captchaImage);
}

- (void)VKRequest:(VKRequest *)request parsingErrorOccured:(NSError *)error
{
    NSLog(@"%s", __FUNCTION__);
    NSLog(@"%@", error);
}

- (void)VKRequest:(VKRequest *)request connectionErrorOccured:(NSError *)error
{
    NSLog(@"%s", __FUNCTION__);
    NSLog(@"%@", error);
}

- (void)VKRequest:(VKRequest *)request
       totalBytes:(NSUInteger)totalBytes
    uploadedBytes:(NSUInteger)uploadedBytes
{
    NSLog(@"%s", __FUNCTION__);
    NSLog(@"%d %d", totalBytes, uploadedBytes);
}

- (void)VKRequest:(VKRequest *)request
       totalBytes:(NSUInteger)totalBytes
  downloadedBytes:(NSUInteger)downloadedBytes
{
    NSLog(@"%s", __FUNCTION__);
    NSLog(@"%d %d", totalBytes, downloadedBytes);
}

@end
AndrewShmig commented 11 years ago

screen shot 2013-09-26 at 5 47 40 pm

AndrewShmig commented 11 years ago

Вы скорее всего не выбрали Standalone тип приложения при его создании. screen shot 2013-09-26 at 5 49 49 pm

yarchiko commented 11 years ago

Андрей приветствую! Спасибо за оперативный ответ (: Ваш вариант помог, спасибо! приложение у меня standalone. проверял кстати на разных аппайди, с разных эппов. ну и на вашем аппайди проверял.

p.s. еще вот не зареньюился токен, при смене айпи адреса. это новый issue создавать, или возможно Вы знаете в чем может быть проблема?

AndrewShmig commented 11 years ago

p.s. еще вот не зареньюился токен, при смене айпи адреса. это новый issue создавать, или возможно Вы > знаете в чем может быть проблема?

Токен реньюится при каждой авторизации, с айпи адресом никак не связан. Опишите детальней проблему. Да, лучше в новой issue, чтобы не мешать всё вместе здесь.