作为this question的续篇,在关注this guide之后,我没有收到任何短信。我也没有任何错误。
这是我的Package.swift
文件:
import PackageDescription
let package = Package(
name: "MyProject",
dependencies: [
.package(url: "https://github.com/Alamofire/Alamofire.git", from: "4.0.0")
],
targets: [
.target(
name: "MyProject",
dependencies: ["Alamofire"]),
.testTarget(
name: "MyProjectTests",
dependencies: ["Alamofire"]),
]
)
这是我的main.swift´file
:
import Foundation
import Alamofire
if let accountSID = ProcessInfo.processInfo.environment["MY_PERSONAL_SID"],
let authToken = ProcessInfo.processInfo.environment["MY_PERSONAL_AUTHTOKEN"] {
let url = "https://api.twilio.com/2010-04-01/Accounts/\(accountSID)/Messages"
let parameters = ["From": "MY_TWILIONUMBER", "To": "MY_PERSONAL_NUMBER", "Body": "Hello from Swift!"]
Alamofire.request(url, method: .post, parameters: parameters)
.authenticate(user: accountSID, password: authToken)
.responseJSON { response in
debugPrint(response)
}
RunLoop.main.run()
}
当我运行swift build && ./.build/debug/MyProject
时,它似乎运行良好,但没有收到任何消息。
我不确定自己做错了什么,但是我有一些疑问:
这两个命令:
export TWILIO_ACCOUNT_SID='YOUR_ACCOUNT_SID'
export TWILIO_AUTH_TOKEN='YOUR_AUTH_TOKEN'
我可以从任何地方在终端中运行它们吗?还是应该在特定的文件夹中运行它们? (我在运行命令时将SID
和TOKEN
更改为我的个人密码)
Package.swift
应该位于我的Xcode项目的基本文件夹中吗?
main.swift
应该位于.../MyProject/Sources/MyProject/main.swift
中吗?
命令swift build && ./.build/debug/MyProject
在指南中,“ main.swift”的解释是:
使用此命令运行它,您应该会收到一条短信!
它们对run it with this command
意味着特殊之处吗?还是我可以从任何地方从终端运行命令?
答案 0 :(得分:2)
这里是Twilio开发人员的传播者。
跑步时
export TWILIO_ACCOUNT_SID='YOUR_ACCOUNT_SID'
export TWILIO_AUTH_TOKEN='YOUR_AUTH_TOKEN'
您需要在最终从中运行应用程序的同一窗口中的终端中执行此操作。您可以阅读有关setting environment variables in this blog post的更多信息。
在您的main.swift
文件中,以下行:
if let accountSID = ProcessInfo.processInfo.environment["MY_PERSONAL_SID"],
let authToken = ProcessInfo.processInfo.environment["MY_PERSONAL_AUTHTOKEN"] {
我相信您的程序正在运行,但未发送任何内容,因为您正试图从名为MY_PERSONAL_SID
和MY_PERSONAL_AUTHTOKEN
的环境中分配变量。如果您按照描述导出环境变量,则此行应为:
if let accountSID = ProcessInfo.processInfo.environment["TWILIO_ACCOUNT_SID"],
let authToken = ProcessInfo.processInfo.environment["TWILIO_AUTH_TOKEN"] {
让我知道是否有帮助。