사용자의 프로필 사진을 업로드하는 데 문제가 있습니다. API 문서에서 알 수있는 404 오류가 계속 발생하여 프로필을 찾을 수 없다고 표시됩니다. 그러나 초 단위로 표시 할 코드 위에 프로파일을 검색하는 코드가 있으며 사용중인 특정 userId에 대한 코드가 존재합니다. 또한 :PHP API를 통해 프로필 사진 업로드
- 이것은 PHP의 SDK
- 나는 사용자가 내가 존재 사용하고
- 테스트 이미지를 프로필 나는 그것을 읽을 수 있어요 편집 할 수 있나요 인증하는 데 사용되는 계정입니다
여기 내 코드가 있습니다. 그것은 작은 실수지만, 나는이이 특정 테스트 사용자를위한 것를 일단 그것을 청소 수 있습니다 :
$file = "testimage.jpeg";
$image_data = file_get_contents($file);
// Build our data
$uid = uniqid();
$data = "--" . $uid . "\r\n".
"Content-Disposition: form-data; name=\"profileImage\"; filename=\"profileImage.jpeg\"\r\n".
"Content-Type: image/jpeg\r\n".
"\r\n".
$image_data . "\r\n".
"--" . $uid . "--";
$success = false;
$tryAgain = true;
$numAttempts = 1;
$url = "/d2l/api/lp/1.0/profile/user/".$userId."/image";
$uri = $opContext->createAuthenticatedUri($url, "POST");
curl_setopt($ch, CURLOPT_URL, $uri);
while ($tryAgain && $numAttempts < MAX_NUM_ATTEMPTS) {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Disposition: multipart/form-data; boundary='.$uid,
'Content-Length: ' . strlen($data))
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
$responseCode = $opContext->handleResult($response, $httpCode, $contentType);
if ($responseCode == D2LUserContext::RESULT_OKAY) {
$success = true;
$tryAgain = false;
}
elseif ($responseCode == D2LUserContext::RESULT_INVALID_TIMESTAMP) {
// Try again since time skew should now be fixed.
$tryAgain = true;
}
else { // Something bad happened
echo "here:\r\n".
$httpCode.
"\r\n\r\n".
$responseCode;
exit;
}
$numAttempts++;
}
내가 누락 무엇인지에 손실에 있어요. 모든 조언을 크게 주시면 감사하겠습니다. 감사합니다
편집 : 즉 (
주
이 작업을 사용하려면, 서비스가 그렇게 할 수있는 응용 프로그램 특정 권한을 부여해야합니다 : 난 그냥 API 문서에서이 부분을주의 , 특정 응용 프로그램 ID 및 키에 대한 권한을 부여하여이 작업을 시도).
우리 앱 ID/키에 실제로 권한이 있는지 묻습니다. 나는 그랬다고 생각했지만 잘못된 정보가 주어 졌을 수도 있습니다. 나는 이것에 대해 질문 할 것이다.
감사에 대한 당신이 아주 많이. 이것은 나를 위해 일했다. 나는 여전히 코드를 잘못 이해하고 비교하려고 노력하고 있지만 (앞으로의 작업에 대한 내 자신의 이해를 위해서), 그렇지만 이것은 매력처럼 작동한다. 무리 감사. –
좋아요! 나는 그것이 당신을 위해 일해서 다행입니다. 나는 D2L API를위한 내 자신의 래퍼 라이브러리를 작성하는 것이 많은 경우에 도움이되었다는 것을 발견했다. – Johnnygizmo
동의 - 내 자신의 내부 작업과 테스트를 수행하기 위해 내가했던 첫 번째 작업 중 하나는 D2L Python SDK에 대한 래퍼 세트를 작성하는 것이 었습니다. 특히 까다로운 작업과 같이 많은 도움이되었습니다. 바이너리 데이터 업로드. –