0

OAuth 2.0 経由でサーバーに接続する iOS アプリがあります。次の形式でアクセス トークンが返されます。

{accessToken="521515.ab6dc96.51dca3d53c4236d2d4f4460b151bc58d6ec91e14"}

そして、それを NSString に保存します。私が抱えている問題は、引用符で囲まれた部分だけが必要だということです。どうすればそれを抽出できますか?

アップデート

ここに私のコードがあります:

GTMOAuth2Authentication *auth_instagram;
auth_instagram = [GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:@"Instagram" clientID:kMyClientID_instagram clientSecret:kMyClientSecret_instagram];

NSLog(@"%@", auth_instagram);

Xcode コンソールに出力されるのは次のとおりです。

GTMOAuth2Authentication 0xb2c0a80: {accessToken="541019.ab6dc96.51dc0d264d2d4f60b151bc8d6ec91e14"} 
4

5 に答える 5

2

http://code.google.com/p/gtm-oauth2/source/browse/trunk/Source/GTMOAuth2Authentication.hでクラス定義を正しく読むとGTMOAuth2Authentication

@property (retain) NSString *accessToken;

あなたができるように

NSString *token = auth_instagram.accessToken;

トークンを文字列として取得します。

備考:あなたの出力

{accessToken="521515.ab6dc96.51dca3d53c4236d2d4f4460b151bc58d6ec91e14"}

descriptionのメソッドを呼び出した結果ですGTMOAuth2Authentication。これはJSON ではありません。JSONは次のようになります

{ "accessToken" : "521515.ab6dc96.51dca3d53c4236d2d4f4460b151bc58d6ec91e14" }
于 2013-09-02T13:12:41.343 に答える
2

正しい方法は、正しいフォーマット/パーサーを使用して文字列全体を解析することです。この場合、おそらく要素NSJSONSerializationから値を抽出します。accessToken

NSDictionary *parsedData = [JSONObjectWithData:[string dataUsingEncoding:NSUTF8StringEncoding] options:0 error:NULL];
NSString *value = parsedData[@"accessToken"];
于 2013-09-02T12:40:19.000 に答える