iOSアプリでLinkedIn
を使用しています。私は、将来の使用のためにアクセストークンを保存したい。iOS SDKを使用してLinkedInアクセストークンを保存するにはどうすればよいですか?
トークンは、NSUserDefaults
に直接保存できない非プロパティタイプです。 私はこのためNSKeyedArchiver
を使用してみましたが、私は出力を得た:トークンのテキストが来ているが、値がnullで来ている
Token===oauth_token "(null)" oauth_token_secret "(null)" oauth_verifier "(null)"
。
-(void)saveData :(LOAToken *)token
{
NSFileManager *filemgr;
NSString *docsDir;
NSArray *dirPaths;
filemgr = [NSFileManager defaultManager];
// Get the documents directory
dirPaths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
// Build the path to the data file
NSString *dataFilePath = [[NSString alloc] initWithString: [docsDir
stringByAppendingPathComponent: @"data.archive"]];
[NSKeyedArchiver archiveRootObject:
token toFile:dataFilePath];
}
-(LOAToken *)GetToken
{
NSFileManager *filemgr;
NSString *docsDir;
NSArray *dirPaths;
filemgr = [NSFileManager defaultManager];
// Get the documents directory
dirPaths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
// Build the path to the data file
NSString *dataFilePath = [[NSString alloc] initWithString: [docsDir
stringByAppendingPathComponent: @"data.archive"]];
// Check if the file already exists
if ([filemgr fileExistsAtPath: dataFilePath])
{
LOAToken *token;
token = [NSKeyedUnarchiver
unarchiveObjectWithFile: dataFilePath];
return token;
}
return NULL;
}
は、私はまた、このように保存しようとしましたが、結果は同じです::
コードは1スニペット
Token===oauth_token "(null)" oauth_token_secret "(null)" oauth_verifier "(null)"
コードが2スニペット:
NSData *myEncodedObject = [NSKeyedArchiver archivedDataWithRootObject:self.accessToken];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:myEncodedObject forKey:@"myEncodedObjectKey"];
[defaults synchronize];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *myEncodedObject = [defaults objectForKey:@"myEncodedObjectKey"];
LOAToken *obj = (LOAToken *)[NSKeyedUnarchiver unarchiveObjectWithData: myEncodedObject];
何かワロンはありますか?私のコーディングやアクセストークンで、いくつかの特別なテクニックが必要ですか?
明確にしていますあなたはユーザーにトークン直接アクセスを保存することを願って、このように
をresponseBodyを保存defaults.No必要に役立ちますme.Hopeのために働いていましたそれをアーカイブしてください –
レスポンスをありがとうございます。私はデフォルトで直接保存すると[NSUserDefaults setObject:forKey:]というメッセージが表示されます:クラス 'OAToken'のプロパティ値 ''を挿入しようとしました。プロパティリストの辞書と配列には、プロパティ値のみが含まれている必要があることに注意してください。 –
Imran
OATokenオブジェクトを直接保存しないでください。応答本体を直接保存します。アクセストークンを使用する場合は、応答トークンを使用してアクセストークンを使用したい場合は、アクセストークン 'self.accessToken = [[NSUserDefaults standardUserDefaults] valueForKeyPath:@ "accessToken"]; [OAToken alloc] initWithHTTPResponseBody:self.accessToken] ' –