• - (void)registerApp { [ShareSDK registerApp:@"4681c730737c" activePlatforms:@[@(SSDKPlatformTypeSinaWeibo), @(SSDKPlatformTypeQQ), @(SSDKPlatformTypeWechat)] onImport:^(SSDKPlatformType platformTy
    <pre name="code" class="objc">- (void)registerApp {
        [ShareSDK registerApp:@"4681c730737c" activePlatforms:@[@(SSDKPlatformTypeSinaWeibo), @(SSDKPlatformTypeQQ), @(SSDKPlatformTypeWechat)] onImport:^(SSDKPlatformType platformType) {
             switch (platformType)
             {
                 case SSDKPlatformTypeWechat:
                     [ShareSDKConnector connectWeChat:[WXApi class]];
                     break;
                 case SSDKPlatformTypeQQ:
                     [ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];
                     break;
                 case SSDKPlatformTypeSinaWeibo:
                     [ShareSDKConnector connectWeibo:[WeiboSDK class]];
                     break;
                 default:
                     break;
             }
         } onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) {
            
            switch (platformType) {
                case SSDKPlatformTypeSinaWeibo:
                    [appInfo SSDKSetupSinaWeiboByAppKey:@"3757875182" appSecret:@"9f350766c81976724b9e7fb45f4edb8c" redirectUri:@"https://www.baidu.com/" authType:SSDKAuthTypeBoth];
                    break;
                    
                case SSDKPlatformTypeQQ:
                    [appInfo SSDKSetupQQByAppId:@"1103427886" appKey:@"Zo93Onibde17ThtR" authType:SSDKAuthTypeBoth];
                    break;
                    
                case SSDKPlatformTypeWechat:
                    [appInfo SSDKSetupWeChatByAppId:@"wx05fb96a30ff2061e" appSecret:@"8641a34086598531b1d80e2b92273d09"];
                    break;
                    
                default:
                    break;
            }
        }];
    }


    
    


    在使用ShareSDK进行新浪微博的分享时出现了一个错误:error:redirect_uri_mismatch 

    这是redirectUri配置不正确导致的,这里需要做到三点一致,即微博平台配置、ShareSDK控制台配置、代码。

    特别强调一下,这个redirectUri一定要严格一致("https://www.baidu.com" 不等于 "https://www.baidu.com/"),否则不会成功。





    这样问题就解决了!



    展开全文
  • SDK版本 2.4.0 百度网盘demo链接:http://pan.baidu.com/s/1dDpLDq5 说明:官方的demo只有授权没有获取用户信息 ,链接里的demo是在官方的demo基础上添加了获取用户信息的使用方式。参考:...

    SDK版本 2.4.0  百度网盘demo链接:http://pan.baidu.com/s/1dDpLDq5

    说明:官方的demo只有授权没有获取用户信息 ,链接里的demo是在官方的demo基础上添加了获取用户信息的使用方式。参考:http://www.cnblogs.com/sollyu/p/3663608.html

    1、SSO授权:

    <span style="font-size:14px;">//授权    
    - (void)ssoButtonPressed
    {
        WBAuthorizeRequest *request = [WBAuthorizeRequest request];
        request.redirectURI = kRedirectURI;
        request.scope = @"all";
        request.userInfo = @{@"SSO_From": @"SendMessageToWeiboViewController",
                             @"Other_Info_1": [NSNumber numberWithInt:123],
                             @"Other_Info_2": @[@"obj1", @"obj2"],
                             @"Other_Info_3": @{@"key1": @"obj1", @"key2": @"obj2"}};
        [WeiboSDK sendRequest:request];
    }</span>


    <span style="font-size:14px;">//授权回调 必须写在Appdelegate中
    #pragma mark - WeiboSDKDelegate
    - (void)didReceiveWeiboResponse:(WBBaseResponse *)response
    {
       if ([response isKindOfClass:WBAuthorizeResponse.class])
        {
            NSString *title = @"认证结果";
            NSString *message = [NSString stringWithFormat:@"响应状态: %d\nresponse.userId: %@\nresponse.accessToken: %@\n响应UserInfo数据: %@\n原请求UserInfo数据: %@",(int)response.statusCode,[(WBAuthorizeResponse *)response userID], [(WBAuthorizeResponse *)response accessToken], response.userInfo, response.requestUserInfo];
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
                                                            message:message
                                                           delegate:nil
                                                  cancelButtonTitle:@"确定"
                                                  otherButtonTitles:nil];
            
            self.wbtoken = [(WBAuthorizeResponse *)response accessToken];
            self.uid = [(WBAuthorizeResponse *)response userID];
            
            [alert show];
            [alert release];
        }
    }</span>




    2、获取用户信息:

    <span style="font-size:14px;">//新浪微博获取用户信息
    - (void)getUserInfo {
        AppDelegate *myDelegate =(AppDelegate*)[[UIApplication sharedApplication] delegate];
        NSMutableDictionary *params = [NSMutableDictionary dictionary];
        [params setObject:myDelegate.wbtoken forKey:@"access_token"];
        [params setObject:myDelegate.uid forKey:@"uid"];
        NSLog(@"params:%@", params);
        WBHttpRequest * wbRequest = [WBHttpRequest requestWithURL:@"https://api.weibo.com/2/users/show.json" httpMethod:@"GET" params:params delegate:self withTag:@"getUserInfo"];
    
    }</span>


    <span style="font-size:14px;">#pragma mark - WBHttpRequestDelegate
    /**
     收到一个来自微博Http请求的网络返回
     
     @param result 请求返回结果
     */
    - (void)request:(WBHttpRequest *)request didFinishLoadingWithResult:(NSString *)result
    {
        NSError *error;
        NSData  *data = [result dataUsingEncoding:NSUTF8StringEncoding];
        NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
        if (json == nil)
        {
            NSLog(@"json parse failed \r\n");
            return;
        }
        NSString *screenname = [json objectForKey:@"screen_name"];
        NSString *picture    = [json objectForKey:@"profile_image_url"];
        
        NSLog(@"screenname = %@",screenname);
        NSLog(@"picture = %@",picture);
        
        NSString *title = nil;
        UIAlertView *alert = nil;
        
        title = @"收到网络回调";
        alert = [[UIAlertView alloc] initWithTitle:title
                                           message:[NSString stringWithFormat:@"%@",result]
                                          delegate:nil
                                 cancelButtonTitle:@"确定"
                                 otherButtonTitles:nil];
        [alert show];
        [alert release];
    }</span>





    展开全文
  • 本文为论坛会员3h2om分享,对新浪微博iOSSDK-宝玉XP框架进行研究所写的学习笔记,非常详细和精彩。 本人刚入学iOS开发,在学习的过程中,对新浪微博iOSSDK-宝玉XP框架进行了学习( 本文为论坛会员3h2om...

    本文为论坛会员3h2om分享,对新浪微博iOS版SDK-宝玉XP框架进行研究所写的学习笔记,非常详细和精彩。 本人刚入学iOS开发,在学习的过程中,对新浪微博iOS版SDK-宝玉XP框架进行了学习(

    本文为论坛会员3h2om分享,对新浪微博iOS版SDK-“宝玉XP”框架进行研究所写的学习笔记,非常详细和精彩。

    本人刚入学iOS开发,在学习的过程中,对新浪微博iOS版SDK-“宝玉XP”框架进行了学习(下载地址:https://github.com/JimLiu/WeiboSDK),在没有获得相应的说明文档前提下,要理解其中的内幕对于初涉OPEN API的新人来说不算是件易事,为了满足一窥究竟的一惯心理,我在对其源代码进行一番抽丝剥茧式的跟踪后,基本上搞懂了框架内各类之间的调用关系,初略地理解了各类的大概用途,也对OAuth 认证机会有了进一步的认识。充分理解该框架后将对于开发基于HTTP协议的类似项目有一定的参考作用。现将我的这种“理解”简要地进行整理,愿能对学习并想了解该SDK的人有所帮助。
    一、组成和关系
    该框架除了由大量的诸如数据连接、数据模型等基础类支撑外,其主要的功能由 RootViewControllerComposeViewController、OAuthcontroller、OAuthEngine URLConnection、WeiboClient 6个类完成,RootViewController是整个框架的视图控制器,它作为应用程序委托中的UINavigationController类型的输出口,控制该系统的主视图以呈现给用户。ComposeViewController类是作为RootViewController类的组成部分存在的,用以控制写微博时所呈现出的发送视图。OAuthcontrller用以控制完成OAuth认证机制所需要的视图。类OAuthEngine、URLConnection、WeiboClient为服务类,为各视图控制类提供服务,类OAuthEngine为完成OAuth方式认证提供了支持,通过该方法完成授权和认证过程,URLConncetion和WeiboClient建立网络连接,实现新浪提供的OPEN API功能,设置并完成HTTP请求以发送和接受数据。


    二、各类简单说明
    1、RootViewController类
    该类是整个系统的视图控制类,是系统与外面交互的入口,也是系统的运行的驱动点,它关联了OAuthEngine等服务类,在该类通过调用其他各服务类提供的功能,完成从用户的登录授权认证到把微博客。在viewDidLoad方法中,完成了对用于保存微博列表的NSMutableArray类的status的初如化。接着在viewDidAppear方法中,用服务方提供的三个URL和应用程序在新浪方获取的Key和Secret完成其成员OAuthEngine类型的_engine的初始化工作,为OAuth认证提供了准备。在此之类,就调用自身loadTimeline方法,来完成包括OAuth认证、请求数据等一系列动作,从此,系统运行的万里长征正式踏上征程。
    2、ComposeViewController类

    该类所控制的视图是RootViewController类所控制的视图的组成一部分,当用户点击主视图上面导航栏中的发送按钮,该类所控制的视图将呈现出来,主要用于发送微博。Draft类描述发送微博时的附件信息,newTweet方法的主要作用是初始化draft,为发送新的微博上传相关附件提供对应的对象,send方法用于调用的OPENG API完成发送这一动作,insert方法在发送微博时插入附件时被调用。
    3、OAuthController类该类主要用于调用OAuthEngine类的服务来完成OAuth认证机制中的认证工作的三步认证,它由RootViewController类中的loodTimeline方法调用。该类中的_webView成员是用来显示用户授权界面的UIVebView控件,因此就实现了UIWebViewDelegate委托,用委托中相应的方法协调完成认证过程。该控件的URLRequest属性被设置为三步认证中的第二个URL,用于获取用户授权的Request Token。
    4、OAuthEngine类该类是OAuth认证实现的核心类,为其他类提供认证服务。调用requestRequestToken将获取到经过授权的获取用户授权的Request Token,调用requestAccessToken将用授权的Request Token换取Access Token。
    5、URLConnection和WeiboClient类WeiboClient是URLConnection的子类,WeiboClient实现了OPEN API方法,设置并完成HTTP请求以发送和接受数据,并用指定的action来处理通过的HTTP请求得到数据。

    二、进入用户授权界面的步骤


    系统运行后,经过RootViewController类的viewDidApper事件方法,调用其lodadTimeline方法完成OAuth认证机制的第一步(获取未授权的Request Token),之后进入到OAuthController类的loadView方法,该方法中通过语句:“*request = _engine.authorizeURLRequest; [_webView loadRequest: request];”完成认证机制中第二步,接着进入到webViewDidFinshg
    事件方法,进入到授权界面。具体细节比较复杂,见下面的(进入授权界面的时序图),由于没有专门的UML工具,加之涉及到的对象较多,时序图没有列出所有的对象和细节。在进入RootViewController的viewDidAppear事件方法中,判断该类中的_engine是否已经存在,如果没有就对其初始化,接着调用“[self performSelector:@selector(loadTimeline) withObject:nil afterDelay:0.0]; ”进入到loadTimeline方法中。loadTimeline方法首先用本类中的实例成员_engine作为参数,着手构建OAuthController对象,下一步就判断刚刚构建的动作是否真的构建了对象,如果对象存在,就立即转入到刚刚构建OAuthController类对象所对应的视图,即进入到授权界面,以供用户进行授权。如果不存在OAuthController对象,就说明已经完成了认证,不用进入到授权界面,直接调用loadData加载与授权用户相关的微博信息后,进入到RootViewController对应视图即可。其中创建OAuthController对象是关键,在其中进行了判断,如果已经授权了或者cache中还保存着相应的cooke的话,就退出,否则就用_engine为参数,调用OAuthController的初始化方法,初始化后又判断_engine.OAuthSetup 的值,如果为NO则表示还没有进行过认证(若为YES则表示已经完成了认证步中的第一步),于是就调用¬¬¬¬_engine requestRequestToken来完成认证的第一步操作。OAuthEngine类中requestRequestToken方法的调用过程:该方法是一中间方法,起到过渡作用,它只是调用 requestURL: token:onSuccess: onFai:方法,后一个方法用指定的URL和两个方法SEL作为参数,其中两个SEL分别用于当该HTTP请求成功或失败返回时对应的处理方法。它分别指定为setRequestToken和outhTicketFailed方法。
    OAuthEngine类中的requestURL:token:onSuccess:onFail方法又用给定的URL和token构建了OAMutableURLRequest对象,然后构建OADataFetcher对象,并把它来提取基于OAMutableURLRequest网络连接的数据(调用onSucess:和onFail方法)。如果成功,就调用上面传过来的OAuthEngine类中setRequestToken方法处理认证第一步的返回数据。setRequestToken只是用得到的数据填充用OAuthEngine类中的_requestToken。
    至此,已经完成了构建OAuthController对象,并工作完成了OAuth认证中的第一步了。接着,程序一路回退,回退至loadTimeline
    方法中:
    UIViewController *controller = [OAuthController controllerToEnterCredentialsWithEngine: _engine delegate:self]//通过以上的过程,该句已经执行完毕
    if(controller)//第一次进入时总需要认证,总会构建controller,所以为为真值
    [self presentModalViewContrllor: controller animated:YES];//
    else
    [self loadData];由于presentModalViewContrllor是异步方法,调用后,loadTimeline就当即结束了。经过几番系统 的“原子操作后”,进入到OAuthController类中的loadView 事件方法中,在该事件方法中,将完成OAuth认证机制中的第二步过程。该方法对即将出现的授权界面中的一些UI进行了初始化设置后,调用:
    NSURLRequest *request = _engine.authorizeURLRequest;
    [_webView loadRequest:request];

    在OAuthEngine类的authorizeURLRequest方法中,首先判断_requestToke.key是否为空(由于我在第一步的认证过程上,已经设置好了),若不为空,则用authorizeURL和_requestToken等为参数,构建OAMutableURLRequest对象,并基于此设置好相关的HTTP请求,并返回供_webView加载,loadView结束后再进入_webViewDidFinishLoad事件方法。
    至此,授权界面已经出现,以供用户对其授权,界面如下:

    此过程的详细调用情况见下图:

    接上:进入授权界面的时序图

    三、用户授权后并进入到微博主界面的调用关系
    当用户在授权界面上填写好帐号和密码后,点击“授权”后,触发OAuthController类的webViewStartLoadWithRequest事件和webViewDidFinishLoad方法,在webViewDidFinishLoad中调用gotPin方法得到Access Token完成OAuth认证机制的最后一步。之后RootViewController类中的viewDidAppear事件方法被触发,在该方法中,调用loadData方法,完成数据的加载工作,然后就显示了微博的主列表界面。

    具体细节比较复杂,见下面的(进入授权界面的时序图),由于没有专门的UML工具,加之涉及到的对象较多,时序图没有列出所有的对象和细节。该时序图仅描述用户授权过程(即OAuth认证的最后步),没有描述认证后其中加载数据的详细过程,详细过程见方法调用图。

    几个重要方法:
    RootViewController类中loadTimeline方法:该方法是本框架中的一个主要中转方法,此方法调用OAuthController类的controllerToEnterCredentialsWithEng
    ine完成认证中的前两步操作,调用loadData方法完成认证的第三步和加载数据过程。
    OAuthEngine类中的requestRequestToken方法用来完成认证第步的请求,setRequestToken方法用来处理接收数据,并设置好_requestToken;requestAccessToken方法用来完成认证第三步,setAccessToken方法用来处理上步接收的数据,并设置_accessToken
    从而完成整个认证操作。OAuthController类中的locateAuthPinInW
    ebView方法用来从返回的HTTP请求中获取PIN码,即获取用授权的Request Token,完成认证的第二步,用此来作为第三步的参数。
    RootViewController类中的timelineDidReceiveForComment方法用来处理接收从HTTP请求返回中的数据,在此方法中实现微博的数据的反序列化工作。
    四、几点发现
    1、OAuthController类中的webViewDiFinishLoad事件方法中通过调用: _delegate OAuthController:self authenticatiedWit
    ntroller:authenticatedWithUserName:_engine.username 方法间接地又调用了一次loadTimeline和loadData 方法生成WeiboCleint
    对象并进行认证和加载数据操作,但由于WeiboClient对象是自动销毁后,程序立即进入到了RootViewController类的viewDidApper事件方法,在这个方法中又调用loadTimeline,以至于上面的操作是多余的,等于在进行了两次认证(第二步和第三步)和加载数据操作。
    2.关于OAuthController类中的webView:shouldStartLoadWit
    hRequest事件方法(视图类的相关事件方法也一样)连续被调用多次问题。这是一个很有趣的问题,至今我没有发现什么原因。比如说要转到(presentModalViewController:)一个视图(该视图实现了UIWebViewDelegate委托),该视图控制器中实现了viewDidLoad和loadView事件方法,如果在这些方法中没有调用其父类的对应方法,则被转到的视图控制器中的这两个方法会连接地被调用,我一次试验是连续地被调用了11次?但如果加上 super viewDidLoad 的话只正常地被调用1次。至于是什么原因,我至今未懂。 

    展开全文
  • 首先下载新浪微博iOS SDK 接入说明以及SDK下载地址为:SDK下载地址 下载的目录下有一个名为“微博iOS平台SDK文档V3.1.1.pdf”文件,里面详细介绍了接入过程。 下面介绍一下自己的接入过程。 1.在appDelegate.m中添加...

    首先下载新浪微博iOS SDK

    接入说明以及SDK下载地址为:SDK下载地址

    下载的目录下有一个名为“微博iOS平台SDK文档V3.1.1.pdf”文件,里面详细介绍了接入过程。

    下面介绍一下自己的接入过程。

    1.在appDelegate.m中添加微博代理

    #pragma mark ------------- 微博登录 回调 -----------------

    - (void)didReceiveWeiboRequest:(WBBaseRequest *)request

    {

        

    }


    - (void)didReceiveWeiboResponse:(WBBaseResponse *)response

    {

        if ([responseisKindOfClass:WBAuthorizeResponse.class])

        {

            NSString * userid = [(WBAuthorizeResponse *)responseuserID];

            NSString * wbtoken = [(WBAuthorizeResponse *)responseaccessToken];

            NSString * oathString = [NSStringstringWithFormat:@"https://api.weibo.com/2/users/show.json?uid=%@&access_token=%@",userid,wbtoken];//

            NSMutableString * msg = [NSMutableStringstring];

            if (NO_VALUE(userid)) {

                [msg setString:ALERT_WEIBO_LOGIN_ERROR];

            }

            NSDictionary* para = [NSDictionarydictionaryWithObjectsAndKeys:oathString,@"para",msg,@"msg",nil];

            [[NSNotificationCenterdefaultCenter] postNotificationName:NOTIFICATION_WEIBO_LOGINobject:niluserInfo:para];

            

    #if DEBUG

            NSString *message = [NSStringstringWithFormat:@"%@: %d\nresponse.userId: %@\nresponse.accessToken: %@\n%@: %@\n%@: %@",NSLocalizedString(@"响应状态",nil), (int)response.statusCode,[(WBAuthorizeResponse *)responseuserID], [(WBAuthorizeResponse *)responseaccessToken],  NSLocalizedString(@"响应UserInfo数据",nil), response.userInfo,NSLocalizedString(@"原请求UserInfo数据",nil), response.requestUserInfo];

            MyNSLog(@"微博:%@",message);

    #endif

        }  

    }

    2.添加WeiboLoginClass.h文件,内容为:

    //

    //  WeiboLoginClass.h

    //


    #import <Foundation/Foundation.h>


    @class WeiboLoginClass;


    @protocol WeiboLoginDelegate <NSObject>

    @required

    -(void) WeiboLogin:(WeiboLoginClass*) WeiboLoginClass  Result:(NSDictionary*) resultDic;

    @end


    @interface WeiboLoginClass : NSObject


    @property (assign)id <WeiboLoginDelegate> delegate;

    @property (nonatomic,strong)UIViewController * currentVC;


    - (instancetype)initWithViewController:(UIViewController*) vc;

    - (void) startAuthorize;

    @end


    添加WeiboLoginClass.m文件,内容为:

    //

    //  WeiboLoginClass.m

    //


    #import "WeiboLoginClass.h"


    @implementation WeiboLoginClass


    - (instancetype)initWithViewController:(UIViewController*) vc

    {

        self = [superinit];

        if (self) {

            // Custom initialization

            self.currentVC = vc;

            [[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(getWeiboLoginNoti:)name:NOTIFICATION_WEIBO_LOGINobject:nil];

        }

        return self;

    }

    -(void) dealloc

    {

        [[NSNotificationCenterdefaultCenter] removeObserver:self];

    }


    -(void) startAuthorize

    {

        WBAuthorizeRequest *request = [WBAuthorizeRequestrequest];

        request.redirectURI =WEIBO_REDIRECTURI;

        request.scope = @"all";

        request.userInfo =@{@"SSO_From":@"SendMessageToWeiboViewController",

                             @"Other_Info_1": [NSNumbernumberWithInt:123],

                             @"Other_Info_2": @[@"obj1", @"obj2"],

                             @"Other_Info_3":@{@"key1": @"obj1", @"key2": @"obj2"}};

        [WeiboSDK sendRequest:request];

    }


    #pragma mark ---------- 微博登录 得到access_token后请求用户信息 --------------

    -(void) getWeiboLoginNoti:(NSNotification*) noti

    {

        [self.currentVChideHud];

        [[NSNotificationCenterdefaultCenter] removeObserver:self];

        NSString* oath_url = [noti.userInfoobjectForKey:@"para"];

        NSString* msg = [noti.userInfoobjectForKey:@"msg"];

        if (NO_VALUE(msg)) {

            dispatch_async(dispatch_get_main_queue(), ^{

    #pragma warning -------------

                NSError *err = nil;

                NSMutableDictionary* dicData = [NSMutableDictionarydictionary];

                err = [requestSyncServer requestSyncServerWithUrl:oath_url withReceiveDic:dicData];

                if (err != nil) {

    #if DEBUG

                    NSString* errString = [[NSStringalloc] initWithFormat:@"解析数据失败"];

                    MyNSLog(@"%@",errString);

    #endif

                    [self.currentVCshowHint:ALERT_WEIBO_LOGIN_ERROR];

                }else{

                    NSString* idstr = [dicData objectForKey:@"idstr"];

                    NSString* nickname = [dicData objectForKey:@"screen_name"];

                    NSString* avatar = [dicData objectForKey:@"avatar_large"];

                    if (!NO_VALUE(idstr) && !NO_VALUE(nickname) && !NO_VALUE(avatar)) {

                        

                        //                NSNumber* typeWeibo = [NSNumber numberWithInteger:3];

                        //                [self.currentVC login2:[idstr lowercaseString] andNickname:nickname andAvatar:avatar andType:typeWeibo];

                        NSDictionary * resultDic = [NSDictionarydictionaryWithObjectsAndKeys:idstr,@"openid",avatar,@"avatar",nickname,@"nickname",nil];

                        [self.delegateWeiboLogin:selfResult:resultDic];

                    }

                }

            });

        }else{

            [self.currentVCshowHint:msg];

        }

    }

    @end


    3. 在调起授权的viewcontroller中

    #pragma mark ----------- 点击微博登录 --------

    - (IBAction)touchWeiboLoginButton:(id)sender {

        MyNSLog(@"点击微博登录");

        self.weibologinclass = [[WeiboLoginClassalloc] initWithViewController:self];

        self.weibologinclass.delegate =self;

        [self.weibologinclassstartAuthorize];

    }

    #pragma mark

    #pragma mark - Weibologindelegate

    -(void) WeiboLogin:(WeiboLoginClass *)WeiboLoginClass Result:(NSDictionary *)resultDic

    {

        [self.openIDsetString:[resultDic objectForKey:@"openid"]];

        [self.figureurl_qq_2setString:[resultDic objectForKey:@"avatar"]];

        [self.nicknamesetString:[resultDic objectForKey:@"nickname"]];

        [selflogin:self.openIDandNickname:self.nicknameandAvatar:self.figureurl_qq_2];

    }




    展开全文
  • Undefined symbols for architecture armv7: "_kCGImageSourceThumbnailMaxPixelSize", referenced from: +[UIImage(WBSDKResize) wbsdk_resizeImageToMaxSize:sourcePath:] in libWeiboSDK.a(UIImage+W...
    Undefined symbols for architecture armv7:
      "_kCGImageSourceThumbnailMaxPixelSize", referenced from:
          +[UIImage(WBSDKResize) wbsdk_resizeImageToMaxSize:sourcePath:] in libWeiboSDK.a(UIImage+WBSDKResize.o)
      "_kCGImageSourceCreateThumbnailWithTransform", referenced from:
          +[UIImage(WBSDKResize) wbsdk_resizeImageToMaxSize:sourcePath:] in libWeiboSDK.a(UIImage+WBSDKResize.o)
      "_kCGImageSourceCreateThumbnailFromImageAlways", referenced from:
          +[UIImage(WBSDKResize) wbsdk_resizeImageToMaxSize:sourcePath:] in libWeiboSDK.a(UIImage+WBSDKResize.o)
      "_kCGImagePropertyPixelHeight", referenced from:
          +[UIImage(WBSDKResize) wbsdk_imageSizeWithoutLoadingWithPath:] in libWeiboSDK.a(UIImage+WBSDKResize.o)
      "_kCGImagePropertyPixelWidth", referenced from:
          +[UIImage(WBSDKResize) wbsdk_imageSizeWithoutLoadingWithPath:] in libWeiboSDK.a(UIImage+WBSDKResize.o)
      "_CGImageSourceCopyPropertiesAtIndex", referenced from:
          +[UIImage(WBSDKResize) wbsdk_imageSizeWithoutLoadingWithPath:] in libWeiboSDK.a(UIImage+WBSDKResize.o)
      "_CGImageSourceCreateWithURL", referenced from:
          +[UIImage(WBSDKResize) wbsdk_resizeImageToMaxSize:sourcePath:] in libWeiboSDK.a(UIImage+WBSDKResize.o)
          +[UIImage(WBSDKResize) wbsdk_imageSizeWithoutLoadingWithPath:] in libWeiboSDK.a(UIImage+WBSDKResize.o)
      "_CGImageSourceCreateThumbnailAtIndex", referenced from:
          +[UIImage(WBSDKResize) wbsdk_resizeImageToMaxSize:sourcePath:] in libWeiboSDK.a(UIImage+WBSDKResize.o)
    ld: symbol(s) not found for architecture armv7
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    SDK增加了图片处理功能,因此需要引入imageio这个框架

    imageio.framework 包含在IOS SDK里,可以直接导入

    转载于:https://www.cnblogs.com/sdlwlxf/p/4347829.html

    展开全文
  • 新浪微博iOS客户端架构与优化之路 随着Facebook、Twitter、微博的崛起,向UGC、PGC、OGC,自媒体提供平台的内 容消费型App逐渐形成了独特的客户端架构模式。与电商和通讯工具类App不同,微博客户端具有多信息...
  • 新浪微博 Flash SDK

    2019-07-02 16:34:44
    本篇的最终目标是在IOS上制作一个查看微博的应用。此篇仅代表进度 1.资源 Api测试 http://flashsdk.sinaapp.com/api/Flashsdk_OAuth2_api.html ...
  • 今天使用新浪微博iOS SDK的时候发现授权后无法返回应用,而是直接进入了回调页,折腾了很久,最后终于找到原因,在这里分享给大家。 1.在info.plist文件里增加url types,在url schems里填上wbXXXX(AppKey) 2.确保...
  • 出现这个问题是因为你在新浪微博开放平台上申请的应用的bundle identifier 和你项目的bundle identifier不一致造成的。更改新浪微博开发平台上应用的bundle id再运行就好了。 2、error:redirect_ui_mismatch...
  • 本人刚入学iOS开发,在学习的过程中,对新浪微博iOSSDK-“宝玉XP”框架进行了学习(下载地址:https://github.com/JimLiu/WeiboSDK),在没有获得相应的说明文档前提下,要理解其中的内幕对于初涉OPEN API的新人...
  • 原文地址:使用心得 教你如何把它加到你的项目中">新浪微博iOSSDK“宝玉XP”框架 使用心得 教你如何把它加到你的项目中作者:spiger [转自网络] 声明:这是一篇菜鸟文章,主要目的就是教你怎么把新浪...
  • 新浪微博iOSSDK

    2011-09-18 21:47:28
    转自:http://www.cocoachina.com/bbs/read.php?tid-73476-keyword-%CE%A2%B2%A9.html 一、组成和关系 该框架除了由大量的诸如数据连接、数据模型等基础类支撑外,其主要的功能由 RootViewCo
  • 转载自:iOS 平台 Cocos2d-x 项目接入新浪微博 SDK 的坑 最近在做一个 iOS 的 cocos2d-x 项目接入新浪微博 SDK 的时候被“坑”了,最后终于顺利的解决了。发现网上也有不少人遇到一样的问题,但是能找到的数量有限...
  • 新版的新浪微博SDK AUTH2.0认证一般只支持网页认证,即弹出一个WebView登录。登录后只要不注销,即使退出app,下次进入程序还是保存登录状态。这里有个问题,注销后如果不手动清除cookies,再点进入登录页面会自动...
1 2 3 4 5 ... 20
收藏数 6,026
精华内容 2,410
热门标签
关键字:

新浪微博iossdk