的-u/--user
選項代表Basic Authentication。它基本上在請求中添加了一個Authorization
HTTP標頭,其中以base64編碼的用戶名/密碼,例如Authorization: Basic Zm9vOmJhcg==
。
基本認證正是由體式API支持的認證方案之一:
體式API支持兩個獨立的認證方案:的OAuth 2.0和HTTP基本認證使用API密鑰。
在實踐中,並根據Asana docs,客戶應通過:
API密鑰的用戶名和密碼爲空
所以,如果你想進行這樣的一個簡單的Objective-C中的請求,例如NSURLConnection
所有你需要做的就是自己創建這個Authorization
頭,注意使用一個空的密碼。你應該能夠很容易地做到這一點(見本answer):
NSString *authStr = [NSString stringWithFormat:@"%@:", apiKey];
NSData *authData = [authStr dataUsingEncoding:NSASCIIStringEncoding];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64EncodingWithLineLength:80]];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];
注:Base64編碼通過NSData
類實現諸如this one。
感謝您的幫助!任何提示,我將如何去像傳遞變量一樣傳遞curl:curl -u myapiKey12345:https://app.asana.com/api/1.0/projects -d「name = Test Job」-d「notes = Test嗒嗒「。 -d「workspace = 11234456789」-d「team = 12345466778」 – adamteale
我懂了,非常感謝! – adamteale
@adamteale如果它工作,你應該upvote並接受他的答案;-)謝謝@deltheil! – agnoster