내가 노력하고 다음을 사용하여 사용자의 프로필 사진에 기록 표시하는 방법 .pictureUrl]); 일부 데이터를 표시하지만 UIImageView에서는 그림을 표시하지 않습니다.디스플레이 사용자 프로필 사진
도움을 주시면 감사하겠습니다.
내가 노력하고 다음을 사용하여 사용자의 프로필 사진에 기록 표시하는 방법 .pictureUrl]); 일부 데이터를 표시하지만 UIImageView에서는 그림을 표시하지 않습니다.디스플레이 사용자 프로필 사진
도움을 주시면 감사하겠습니다.
salesforce Rest API를 호출하고 사용자 정보를 가져 오는 중입니다.
NSString *[email protected]"/services/data/v29.0/chatter/users/me";
SFRestMethod method=0;
SFRestRequest *request = [SFRestRequest requestWithMethod:method path:path queryParams:queryParams];
[[SFRestAPI sharedInstance] send:request delegate:self];
이것은 json 응답을 반환합니다. 는 - (무효) 요청 : {. ...} : (SFRestRequest *) 요청 didLoadResponse (ID) dataResponse
구문 분석은 그것에서 사진 사전을 요구하고 이미지를로드/저장 fullEmailPhotoUrl를 사용합니다. largePhotoUrl 및 largePhotoUrl을 사용하면 사진이로드되지 않았습니다. 예 : 사진 사전 분석 :
사진 = {
fullEmailPhotoUrl = "https://na14.salesforce.com/ncsphoto/ < SOMEIDENTIFIERS
>";
largePhotoUrl = "https://c.na14.content.force.com/profilephoto/ < SOMEIDENTIFIERS
>/F";
photoVersionId = < PHOTOID
>;
smallPhotoUrl = "https://c.na14.content.force.com/profilephoto/ < SOMEIDENTIFIERS
>/T";
standardEmailPhotoUrl = "https://na14.salesforce.com/ncsphoto/ < SOMEIDENTIFIERS
>";
url = "/services/data/v29.0/chatter/users/ < SOMEIDENTIFIERS
/photo";
};
Chatter API 내부에서 정확히 동일한 작업을 시도했습니다. "smallPhotoUrl"아래의 피드 데이터에서 이미지를로드하려고합니다. 내가 발견 한 것은 URL 끝에 활성 토큰이 추가되어야한다는 것입니다.
이 소스 개념에 저를 소개 : Accessing Chatter user pics
그리고 마침내 어떻게 여기에 토큰에 액세스하는 몇 가지 명확한 정보를 찾을 수 있었다 :
NSString *builtImageUrlWithToken = [NSString stringWithFormat:@"%@?oauth_token=%@",
phototoUrl, [SFAccountManager sharedInstance].credentials.accessToken];
NSURL *imageURL = [NSURL URLWithString:builtImageUrlWithToken];
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
: 그래서 결국 내가 이런 짓을 262
salesforce_platform_mobile_services.pdf 페이지를
나는이 주제와 관련이 있다고 생각하는데, 나는이 특별한 해결책을 찾아 보면서이 주제를 발견했다. 나는 다른 사람들에게도 유용 할 것이라고 확신한다.
감사합니다.
첫 번째 Apple 문서는 동기식이기 때문에 네트워크 호출에 dataWithContentsOfURL을 사용하지 않는다고 말합니다.
그래서, 당신은 이미지를 얻을 대신에이 같은 작업을 수행 할 수 있습니다. (이 비동기입니다 대신 대표단의 블록을 사용할 수 있습니다.)
SFIdentityData *idData = [SFAccountManager sharedInstance].idData;
if(idData != nil) {
SFRestRequest *request = [[SFRestRequest alloc] init];
request.endpoint = [idData.pictureUrl absoluteString];
request.method = SFRestMethodGET;
request.path = @"";
[[SFRestAPI sharedInstance] send:request delegate:_delegate];
}
를 할 수있는 대리인에
을 (위해 예를 들어, CoreData에 이미지를 저장하거나 UIImage에 NSData를 할당하십시오.
[[UIImage alloc] initWithData : picData];
또한 UIImage가 올바르게 배선되어 있는지 확인해야합니다. 한 가지 방법은 IBOutlet 인 UIImageView를 사용하는 것입니다. Alamofire를 사용하여 빠른 3에서
:
if let url = URL(string: baseURl + "/sobjects/Attachment/\(imageID)/Body"){
let header = ["Authorization": "Your Auth Token"]
Alamofire.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: header).responseData { (response) in
if response.error == nil {
print(response.result)
// Show the downloaded image:
if let data = response.data {
debugPrint(data)
self.profileImg.image = UIImage(data: data)
self.profileImg.contentMode = .scaleAspectFill
debugPrint(UIImage(data: data)!)
}
}
}
}
이것을 구현하여 결과를 얻었습니다. 당신이 또한 그것에 찔린다면 그것을 사용해야합니다. –
당신은 문제의 가능한 원인으로 제거 것을 당신의 시도 무엇. pictureUrl이 유효한지 확인 했습니까? idData가 유효하지 않은 경우? [SFAccountManager sharedInstance] .idData.pictureURL은 유효한 URL을 반환합니다. dataWithContentsOfURL에 대한 호출이 데이터를 모두 읽습니까? 질문에 이러한 측면에 관한 정보를 쓰지 않은 이유는 무엇입니까? 당신이 그 (것)들을 시도하지 않은 경우에 왜 당신은 첫째로 너 자신을 위해 무엇이든을 시도하기 전에 배치하고 있는가? – Gruntcakes
나는 모든 언급을 시험했다. URL을 확인하기 위해 사파리에서 링크를 붙여 넣기도하고 Salesforce에 로그인 한 후에 사진을 제공합니다. 코드 스 니펫을 추가했습니다. [profilePicData writeToFile : 원자 적으로 filePath : 예]; 로컬에 그림 파일을 씁니다. 그러나 열 때 잘못된 파일이 표시됩니다. – neo
UIImageView에서로드/표시와 관련된 코드를 표시하지 않았습니다. – Gruntcakes