我正在尝试在我的iOS应用中实现Intercom.io的自定义属性。我在XCode 7,Swift 2和iOS 9中。

这是我的代码:

class func updateUser(user: User) {
    Intercom.updateUserWithAttributes([
        "name": user.name,
        "email": user.email
    ])

    let userAttributes = ([
        "role": "customer",
        "phone": user.phone,
        "First Name": user.firstName,
        "Last Name": user.lastName,
        "Referral Code": user.referralCode,
        "Avatar Pic": user.avatarURL,
        "Profile Pic": user.profilePicURL
    ])

    Intercom.updateUserWithAttributes(["custom_attributes": userAttributes])
}

我已经成功提交了“名称”和“电子邮件”,但是我的“custom_attributes”无效。根据对讲机的文档,我认为我的语法是正确的:
https://docs.intercom.io/Install-on-your-mobile-product/configuring-intercom-for-ios

但是我是Swift新手,没有Obj-C的经验。

同样重要的是要注意我的事件正在正确地报告。
Intercom.logEventWithName(eventName)

我的语法有什么问题吗?还是其他?请帮忙!

最佳答案

原来有两个问题:

1)对讲文档错误,自定义属性不需要“custom_attributes”标签

2)我的URL格式是NSURL而不是字符串,因此整个对象都被拒绝了

立即修复!感谢对讲机的Dale的支持

代码很简单:

let userAttributes = [
        "name": user.name,
        "email": user.email,
        "role": "customer",
        "phone": user.phone,
        "first_name": user.firstName,
        "last_name": user.lastName,
        "referral_code": user.referralCode,
        "avatar_pic": user.avatarURLString,
        "profile_pic": user.profilePicURLString
    ]

Intercom.updateUserWithAttributes(userAttributes)

10-05 20:06