[英]How to call an elgg module action via url
我是Elgg的新手,我的要求是創建一個Elgg插件以從Gmail,Yahoo和MSN導入聯系人。
我已經成功地將聯系人導入了Joomla。 當我創建一個Elgg插件並且給定Oauth回調URL時,例如invitefriends/gmailcallback
甚至直接調用
mod/invitefriends/actions/gmailcallback.php
它不起作用。
在第一種情況下,它缺少返回的表單令牌,我嘗試如下所示動態添加表單令牌。
$ts = time();
elgg_register_action('invitefriends/gmailcallback',
TRUE,
elgg_get_plugins_path() . 'invitefriends/actions/gmailcallback.php?__elgg_token='.generate_action_token($ts).'&__elgg_ts='.$ts);
但是還是一樣的錯誤。 所以我嘗試直接訪問模塊文件,它工作正常,但是問題是我沒有獲得$_SESSION['oauth_token_secret']
會話變量,該變量在默認視圖中設置並具有適當的值,但無法獲取該會話在動作文件中直接調用方法。
我不確定它是否符合Elgg標准,請建議我解決問題
提前致謝..
不要使用直接通話。 第一件事:您正在使用不建議使用的操作注冊參數-更新您的通話。 我假設您正在寫Elgg 1.8或更高版本。
您以完全錯誤的方式添加動作令牌! 它們是防止XSRF攻擊所必需的,因此需要在URL生成時添加pe。 要進行elgg_register_action,您需要傳遞操作文件PATH,而不是URL。 使用elgg_add_action_tokens_to_url
並通讀http://docs.elgg.org/wiki/Actions#Security
您應該得到具體的錯誤信息,但沒有提及。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.