使用Go SDK
中的用户名和apikey
返回
{“error”:“拒绝访问。”,“代码”:“SoftLayer_Exception_Public”}
package main
import (
"fmt"
"github.com/softlayer/softlayer-go/services"
"github.com/softlayer/softlayer-go/session"
"github.com/softlayer/softlayer-go/sl"
)
func main() {
userName := "xxxx"
apikey := "xxxx"
sess := session.New(userName, apikey)
sess.Debug = true
doListAccountVMsTest(sess)
}
func doListAccountVMsTest(sess *session.Session) {
service := services.GetAccountService(sess)
vms, err := service.Mask("id;hostname;domain").Limit(10).GetVirtualGuests()
if err != nil {
fmt.Printf("Error retrieving Virtual Guests from Account: %s\n", err)
return
} else {
fmt.Println("VMs under Account:")
}
for _, vm := range vms {
fmt.Printf("\t[%d]%s.%s\n", *vm.Id, *vm.Hostname, *vm.Domain)
}
}
func handleError(err error) {
apiErr := err.(sl.Error)
fmt.Printf(
"Exception: %s\nMessage: %s\nHTTP Status Code: %d\n",
apiErr.Exception,
apiErr.Message,
apiErr.StatusCode)
}
答案 0 :(得分:0)
运行代码时我没有遇到任何问题,我建议您检查您要发送的用户名和apikey。请参阅个人资料https://control.softlayer.com/account/user/profile
中的 API访问信息部分答案 1 :(得分:0)
值得注意的是,它在IBM Cloud上的记录并不十分清楚,并且返回的错误消息也并非十分清楚:这一事实:有时,您收到的Access Denied错误与您没有拥有升级后的IBM即付即用帐户。
请牢记这一点,对于可能遇到相同错误消息但不知道该怎么做的其他用户。