#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
//https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI
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];
}
}