0
나는 powershell에서 다음 두 코드를 작성하여 ASANA에 액세스합니다.APIKEY를 사용하여 windows powershell을 통해 ASANA에 액세스
하지만 둘 다 작동하지 않습니다. 나는 항상이 오류가 발생한다.
"원격 서버가 오류를 반환했다 : (401) 권한이 없다."
도움을 주시면 감사하겠습니다. APIKey 만있는 보안 서버에 연결할 수있는 작동하는 C# 코드가있는 경우 게시하십시오. PowerShell 코드로 변환 할 수 있습니다.
코드 1
Function Get-WebResponseString
{
param (
[Parameter(Mandatory=$true)]
[String]$Url,
[Parameter(Mandatory=$true)]
[String]$Method,
[Parameter(Mandatory=$false)]
[System.Net.NetworkCredential]$Credential
)
$Request = [System.Net.WebRequest]::Create($Url)
$Request.Method = $Method
$Request.ContentType = "application/x-www-form-urlencoded";
if ($Credential -ne $null)
{
$Request.Credentials = $credential
write-host "****" -foregroundcolor blue
}
$Response = $Request.GetResponse()
$StreamReader = New-Object System.IO.StreamReader $Response.GetResponseStream()
$StreamReader.ReadToEnd()
}
$Url = "https://app.asana.com/api/1.0/tasks"
$Username = "[email protected]"
$apikey="xxxxxxxxx"
$credential = New-Object System.Net.NetworkCredential @($Username, $apikey)
Get-WebResponseString -Url $Url -Credential $credential -Method "GET"
코드 2
$sha = New-Object System.Security.Cryptography.SHA1CryptoServiceProvider
$apikey="xxxxxxx"
#Add colon
$authinfo=$apikey+":";
$string1 = $authinfo
Write-Host $string1 -ForeGroundColor Green
#Encoding format
$enc = [system.Text.Encoding]::UTF8
#get bytes
$data1 = $enc.GetBytes($string1)
#Encode
$result1 = $sha.ComputeHash($data1)
#convert to 64 bit
$mykey=[System.Convert]::ToBase64String($result1)
Write-Host $mykey -ForeGroundColor Green
$url = "https://app.asana.com/api/1.0/tasks"
$url="https://app.asana.com/api/1.0/users"
$request = [System.Net.WebRequest]::Create($url)
$authorization = "Authorization: Basic " + $myKey
Write-Host $authorization -ForeGroundColor Green
$request.Headers.Add($authorization)
#$request.Headers.Add("Authorization: BASIC $mykey")
$response = $request.GetResponse()
Write-Host $Response -ForeGroundColor Green
굉장합니다. 감사. – MAK
굉장합니다. 감사. 챔피언처럼 일했습니다. 내 업데이트 코드는 다음과 같습니다 $ apikey = "*******************" $ authinfo = $ apikey + ":"; $ enc = [system.Text.Encoding] :: UTF8 $ data1 = $ enc.GetBytes ($ authinfo) $ mykey = [System.Convert] :: ToBase64String ($ data1) $ url = "https : /app.asana.com/api/1.0/users " $ request = [System.Net.WebRequest] :: Create ($ url) $ authorization ="Authorization : Basic "+ $ myKey $ request.Headers.Add ($ authorization) $ Response.GetResponse() $ StreamReader = New-Object System.IO.StreamReader $ Response.GetResponseStream() $ StreamReader.ReadToEnd – MAK