2017-12-21 28 views
0

사용 예제를 거부하고 apikeySOFTLAYER SDK SoftLayer_Exception_Public는 액세스가 사용자 이름과 <code>Go SDK</code>에

을 반환 { "오류": "액세스가 거부되었습니다.", "코드": "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

코드 예제를 표시 할 수 있습니까? – live2

답변

0

코드를 실행할 때 문제가 없었으므로 보내는 사용자 이름과 apikey를 확인하는 것이 좋습니다. 프로필의 API 액세스 정보 섹션을 참조하십시오. https://control.softlayer.com/account/user/profile

+0

VPN 사용자 이름입니까? IBM 엔지니어가 어제 연락하여 사용자 이름과 apikey가 맞는지 확인했습니다. 방금 언급 한 사용자 이름이 VPN 사용자 이름이라는 것을 알았습니다. 맞습니까? – sheldon

+0

아니요, 그렇지 않습니다. "API 사용자 이름"및 "인증 API 키"를 찾습니다. 그 중 하나가 없다면 모든 사용자가 나열된 테이블의 API 키 열에서 생성 (계정 >> 사용자)을 클릭하여 생성해야합니다. https://knowledgelayer.softlayer.com/procedure/generate-api-key –

+0

여기에 두 개의 이미지가 있습니다. 1) UserName 및 ApiKey https://docs.jamcracker.com/ver3.0/sites/default/files/Authentication_Key_% 26_Username.png 2) ApiKey 생성 https://www.acentera.com/assets/images/SoftlayerGenerateAPIKey.png –