#define SINA_API_AUTHORIZE @"https://api.weibo.com/oauth2/authorize"
#define SINA_APP_KEY @"3456404324"
- (NSURL*)getOauthCodeUrl { //获取auth_code or access_token;留给webview用
//https://api.weibo.com/oauth2/authorize
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
SINA_APP_KEY, @"client_id", //申请的appkey
@"token", @"response_type", //access_token
@"http://hi.baidu.com/jt_one", @"redirect_uri", //申请时的重定向地址
@"mobile", @"display", //web页面的显示方式
nil];
NSURL *url = [self generateURL:SINA_API_AUTHORIZE params:params]; //参数是可变个数的
NSLog(@"url= %@",url);
return url;
}
- (NSURL *)generateURL:(NSString *)baseURL params:(NSDictionary *)params {
if (params) {
NSMutableArray *pairs = [NSMutableArray array];
for (NSString *key in params.keyEnumerator) {
NSString *value = [params objectForKey:key];
//将要添加到URL的字符串进行特殊处理,如果这些字符串含有 &, ? 这些特殊字符,用“%+ASCII” 代替
NSString *escaped_value = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL, /* allocator */
(CFStringRef)value,
NULL, /* charactersToLeaveUnescaped */
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
[pairs addObject:[NSString stringWithFormat:@"%@=%@", key, value]];
[escaped_value release];
}
NSString *query = [pairs componentsJoinedByString:@"&"];
NSString *url = [NSString stringWithFormat:@"%@?%@", baseURL, query];
return [NSURL URLWithString:url];
} else {
return [NSURL URLWithString:baseURL];
}
}