簡體   English   中英

如何通過URL調用Elgg模塊動作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM