2015-05-21 60 views
1

用戶的圖片使用Moodle的Web服務(REST)調用core_user_get_users_by_field我成功地讓我的用戶詳細信息。其中一個返回的字段是profileimageurl鏈接到我的用戶的個人資料圖片,看起來像這樣:Moodle的:從web服務

http://my_moodle_server/pluginfile.php/89/user/icon/f1 

不幸的鏈接只能在那裏我已經登錄瀏覽器,否則會重定向到一個標準的用戶圖標(灰色的匿名人臉)。

因此,爲了獲得實際的圖像形成使用Moodle的Web服務,我想我必須叫core_files_get_files,並通過正確的值的客戶端應用程序。於是,我就重新映射像這樣的鏈接調用paramenters:

contextid: 89 
component: "user" 
filearea: "icon" 
itemid: 0 
filepath: "/" 
filename: "f1.png" (also tryed without .png) 
and of course my valid token 

,但我得到的是:

{"parents":[],"files":[]} 

參數似乎是形式上正確的(否則我會得到一個例外),但是我只得到它告訴我,一些值不正確空應答。

回答

1

好,我找到了解決我的問題。我在這裏發佈答案還因爲沒有太多有關Moodle web服務的信息...

首先,core_files_get_files是不是...它只會顯示文件信息,它不會給你實際的文件內容(二進制)。

幸運的是,來自外部的客戶端應用程序調用時使用等效網址:

http://my_moodle_server/web服務 /pluginfile.php

它接受相同的參數/格式http://my_moodle_server/pluginfile.php,此外,你可以還會將您的令牌傳遞給Web服務身份驗證。通過core_user_get_users_by_field返回

所以profileimageurl場,看起來像這樣:

http://my_moodle_server/pluginfile.php/89/user/icon/f1 

可以變成

http://my_moodle_server/webservice/pluginfile.php/89/user/icon/f1?token=my_web_service_token 

也注意到,追加?token=參數是必需的

+0

我面臨同樣的問題得到Myrpivate文件列表,如何從web服務的一部分讓他們在這裏是我犯了Web網頁的URL/REST/server.php?wstoken = 3AFE 18c8697dac9518d59bb8f10429b4&wsfunction = core_files_get_files&moodlewsrestformat = JSON&關聯標識符= 2&成分=&filearea =&的itemid = 0&文件路徑= –