Phabricator conduit.connect C#证书错误

时间:2015-12-07 11:25:44

标签: c# phabricator conduit

我正在尝试为Phabricator安装编写一个接口,以允许内部改进系统创建任务。但是,我无法弄清楚为什么我一直收到证书错误。

"{\"result\":null,\"error_code\":\"ERR-INVALID-CERTIFICATE\",\"error_info\":\"Your authentication certificate for this server is invalid.\"}"

以下是我的代码;

    private void CreateSession()
    {
        int token = (int)((DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds);

        var result = this.Do(
            "conduit.connect",
            new
            {
                client = this.ClientName,
                clientVersion = this.ClientVersion,
                clientDescription = "HIS to Fabricator Connector",
                user = this.User,
                authToken = token,
                authSignature = SHA1HashStringForUTF8String(token + this.Certificate)
            });
        this.m_SessionKey = result.sessionKey;
        this.m_ConnectionID = result.connectionID;
    }

public static string SHA1HashStringForUTF8String(string s)
    {
        byte[] bytes = Encoding.UTF8.GetBytes(s);

        var sha1 = SHA1.Create();
        byte[] hashBytes = sha1.ComputeHash(bytes);

        return HexStringFromBytes(hashBytes);
    }

public static string HexStringFromBytes(byte[] bytes)
    {
        var sb = new StringBuilder();
        foreach (byte b in bytes)
        {
            var hex = b.ToString("x2");
            sb.Append(hex);
        }
        return sb.ToString();
    }

返回以下JSON;

"{\"client\":\"HIS\",\"clientVersion\":\"1\",\"clientDescription\":\"HIS to Fabricator Connector\",\"user\":\"KYLIE\",\"authToken\":1449486922,\"authSignature\":\"ec020edbd5082d3971c2c11ef4f4917244fc4a78\"}"

我认为问题是我通过的证书。我正在使用;

api-3ydcae2gtmf6u6uer2zow465j6px

我从Conduit API令牌页面获得。

任何指针?

1 个答案:

答案 0 :(得分:2)

  1. 您必须通过... / conduit / token
  2. 获取令牌
  3. 使用该令牌查询... / api / conduit.getcertificate
  4. 结果您获得了证书 - >利润! :)

    PS:查询证书既不重要也不是气候! ;)