我正在开发销售人员附件应用程序。此应用程序显示特定对象的附件列表,例如潜在客户、联系人、机会、案例、活动。
我已成功将图像、视频、音频等附件从我的应用程序上传到 salesforce 帐户,并以 blob 格式从 salesforce 下载并成功显示在我的附件中。
为此,我在名为“salesforce attachment”的 salesforce 帐户上创建了 App,并成功生成了 Consumer key、callback url、Client secret。
然后我将此使用者密钥和回调 url 链接到我的 iOS 应用程序,我成功登录。
现在要访问附件 blob,首先我需要访问令牌。
为了获取访问令牌,我使用了 OAuth 2.0 令牌流。在此我传递了以下参数,grant_type=password,client_id=consumerKey,username=username,password=password,Redirect_uri=callbackUrl,
通过传递此参数,我已成功生成访问令牌。
每次需要从 salesforce 获取附件数据时,我都会使用此令牌。
现在的问题是,当我使用创建了我的 Salesforce 应用程序的“Salesforce 附件”的 Salesforce 帐户登录到我的 iOS 应用程序时,我的应用程序运行正常。
但是当我在我的 iOS 应用程序中使用另一个 Salesforce 帐户登录时。我得到的是附件列表,但不是附件 Blob
我收到以下错误,
{ "message" : "The requested resource does not exist", "errorCode" : "NOT_FOUND" }.
这是我获取附件 blob 的代码。
NSString *blobPost = [NSString stringWithFormat:@"OAuth %@",access_token];
NSString *urlString=[NSString stringWithFormat:@"%@%@/Body",instance_url,attachmentUrl];
NSURL *blobUrl=[NSURL URLWithString:urlString];
[blobRequest setURL:blobUrl];
[blobRequest setHTTPMethod:@"GET"];
blobRequest setValue:blobPost forHTTPHeaderField:@"Authorization"];
[blobRequest setValue:@"application/pdf" forHTTPHeaderField:@"Content-Type"];
[NSURLConnection
sendAsynchronousRequest:blobRequest
queue:[[NSOperationQueue alloc] init]
completionHandler:^(NSURLResponse *response,
NSData *data,
NSError *error)
{
if ([data length] >0 && error == nil)
{
//here i can get attachment data
imageData=[[NSData alloc]initWithData:data];
}
else if ([data length] == 0 && error == nil)
{
NSLog(@"Nothing was downloaded.");
[HUD hide:NO];
}
else if (error != nil){
NSLog(@"Error = %@", error);
}
}];
我需要你的帮助。在此先感谢