zoukankan      html  css  js  c++  java
  • iOS腾讯微博授权,发送文字微博

    //请求页所在地址

        //https://open.t.qq.com/cgi-bin/oauth2/authorize?client_id=APP_KEY&response_type=token&redirect_uri=http://www.myurl.com/example

     

        NSString *requestString = [NSStringstringWithFormat:TencentRequestURL,TencentAppKey, TencentRedirectURI];

        NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:[NSURLURLWithString:requestString]];

        NSLog(@"Tencent request URL string is %@", requestString);

        [authWebView loadRequest:request];

     

     

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

    {

    if (authType == 2){

            //如果获取到access_token就将该值保留

            NSString *absolutStr = [request.URL absoluteString];

            NSLog(@"The absolut string is %@", absolutStr);

            NSRange start = [[url absoluteString] rangeOfString:@"access_token="];

            if (start.location != NSNotFound) {

                NSString *accessToken = [self getStringFromUrl:absolutStr needle:TencentAccessTokenKey];

                NSString *expiresIn = [self getStringFromUrl:absolutStr needle:TencentExpiresInKey];

                NSString *openId = [self getStringFromUrl:absolutStr needle:TencentOpenIdKey];

                NSString *openKey = [self getStringFromUrl:absolutStr needle:TencentOpenKeyKey];

                NSString *refreshToken = [self getStringFromUrl:absolutStr needle:TencentRefreshTokenKey];

                NSLog(@"The tencent access_token is %@, openid is %@, openkey is %@", accessToken, openId, openKey);

                if ((accessToken == (NSString *)[NSNull null]) || (accessToken.length == 0)

                    || (openId == (NSString *)[NSNull null]) || (openKey.length == 0)

                    || (openKey == (NSString *)[NSNull null]) || (openId.length == 0)

                    || (expiresIn == (NSString *)[NSNull null]) || (expiresIn.length == 0)

                    || (refreshToken == (NSString *)[NSNull null]) || (refreshToken.length == 0)) {

                    NSLog(@"Tencent auth failed!");

                }else{

                    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

                    [userDefaults setValue:[self encryption:PasswordKey :accessToken] forKey:@"tencent_access_token"];

                    [userDefaults setValue:expiresIn forKey:@"tencent_expires_in"];

                    [userDefaults setValue:openId forKey:@"tencent_openid"];

                    [userDefaults setValue:openKey forKey:@"tencent_openkey"];

                    [userDefaults setValue:refreshToken forKey:@"tencent_refresh_token"];

                    [userDefaults synchronize];

                    

                    UIAlertView *alert = [[UIAlertViewalloc] initWithTitle:nilmessage:@"授权成功!" delegate:selfcancelButtonTitle:@"OK"otherButtonTitles:nil, nil];

                    [alert show];

                    [alert release];

                }

                authWebView.delegate = nil;

                [selfdismissModalViewControllerAnimated:YES];

                return NO;

            }

        }

        returnYES;

    }

  • 相关阅读:
    dig批量获取域名对应IP
    文件和目录
    Linux程序设计的CD唱片应用程序
    LinuxRedhat7.0虚拟机配置双网卡
    Redhat7.0计划任务服务程序(at,crontab)
    RedHat7 修改主机名称 配置网卡信息 配置Yum软件仓库
    关于RedHat5.0不能提示找不到/media/cdrom/repodate/repomd.xml
    Redhat5静态IP分配,提示Error, some other host already uses address解决办法
    三种时间戳的解释
    RHEL 7 -解决“没有启用回购”消息
  • 原文地址:https://www.cnblogs.com/easonoutlook/p/2642781.html
Copyright © 2011-2022 走看看