【问题标题】:API Integration osclassAPI 集成 osclass
【发布时间】:2015-09-11 08:36:30
【问题描述】:

我发现一些人正在寻找 osclass 的解决方案,就插件而言,这似乎并不流行,所以希望我的问题也能对其他人有所帮助。

我创建了一个与 Interspire 电子邮件营销 (IEM) 集成的 php API。

当有人在 osclass 网站上注册成为广告商时,以下 API 会联系 Interspire Email Marketers XML.PHP 并将订阅者添加到列表中。

对于要添加到 Osclass 注册表单的 SUBMIT 按钮的内容,我有点困惑。这是 API:

<?PHP

// CHECK AUTHORIZATION
// -------------------------------------------------------------------------    -----
if ($MailingListAuth == true) {

/
// -------------------------------------------------------------------------    -----
$s_name = check_type('s_name');
$s_email = check_type('s_email');
// ------------------------------------------------------------------------------

$xml = '<xmlrequest>
<username>MyIEMUserName</username>
<usertoken>b331be663b16ae7atolkeiias9f7hgkg7ff2f1d</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>AddSubscriberToList</requestmethod>

<details>
<emailaddress>'.$s_email.'</emailaddress>
<mailinglist>2</mailinglist>
<format>html</format>
<confirmed>yes</confirmed>

<customfields>

<item>
<fieldid>2</fieldid>
<value>'.$s_name.'</value>
</item>

</customfields>

</details>
</xmlrequest>
';

$ch = curl_init('https://example.com/mail/xml.php'); //CHANGE TO THE PATH OF     YOUR IEM INSTALLATION
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
if($result === false) {die("Error performing request");}
//var_dump($result); //for debugging purposes
//Example of how to display returned data
$xml_doc = simplexml_load_string($result);
if ($xml_doc->status == 'SUCCESS' && empty($xml_doc->data)) {die('Status is     success. Empty response.');}
if ($xml_doc->status == 'SUCCESS') {
    echo 'Response: <br />';
    var_dump($xml_doc->data);
} else {
    echo 'Error is '. $xml_doc->errormessage;
}

}

?>

这是osclass表单按钮代码

<button type="submit" class="ui-button ui-button-middle ui-button-main"><?    php _e("Create", 'bender'); ?></button>

我不确定如何调用 API php 页面,以便将其发送到 IEM 并添加订阅者。

【问题讨论】:

    标签: php api integration osclass


    【解决方案1】:

    你有钩子和插件,你可以使用 'user_register_completed' 钩子

    例如

    function IEM_subscribe($userId) {
        $user = User::newInstance()->findByPrimaryKey($userId);
        //YOUR CODE HERE
        // user's email is in $user['s_email']
        // user's name is in $user['s_name']
    }
    osc_add_hook('user_register_completed', 'IEM_subscribe');
    

    这个函数会在用户注册后调用,如果你想在之前调用它,使用'pre_user_post'钩子。

    【讨论】:

    • 感谢您的回答,这听起来有点复杂,但我会试一试。再次感谢
    • 感谢@CONEJO,但这有点超出我的能力范围。我不明白该代码的去向以及 IEM 邮件列表代码如何适合您添加的 sn-p?如果您查看页面源代码,将所有代码添加到页面将使我的管理员用户名和令牌可见,这似乎有点不安全?我在顶部添加的代码是一个实际页面,因此不明白如何使用您发送的代码来完成。我是 osclass 的新手,所以可能需要多学习一点,但我真的不想成为像你自己和这里的其他一些人一样出色的编码器。还是谢谢。
    猜你喜欢
    • 2014-01-29
    • 2014-09-12
    • 2016-07-06
    • 2011-03-26
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多