softlayer SDK SoftLayer_Exception_Public:访问被拒绝

时间:2017-12-21 10:04:39

标签: go sdk ibm-cloud-infrastructure

使用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)
}

2 个答案:

答案 0 :(得分:0)

运行代码时我没有遇到任何问题,我建议您检查您要发送的用户名和apikey。请参阅个人资料https://control.softlayer.com/account/user/profile

中的 API访问信息部分

答案 1 :(得分:0)

值得注意的是,它在IBM Cloud上的记录并不十分清楚,并且返回的错误消息也并非十分清楚:这一事实:有时,您收到的Access Denied错误与您没有拥有升级后的IBM即付即用帐户。

请牢记这一点,对于可能遇到相同错误消息但不知道该怎么做的其他用户。