Parse.com - 添加<user>指针__User&amp; ACL </用户>

时间:2014-05-12 11:40:55

标签: parse-platform

我正在尝试使用API​​

向Parse数据库中的Class添加一行

我设法添加了行但是我注意到了&#39; ACL&amp; user__user&#39;字段是空白的。

我的Request类看起来像这样:

public class AccountDataRequest
    {
        public string OrderNo { get; set; }
        public string SiteName { get; set; }
        public string CreditDebit { get; set; }
        public int Amount { get; set; }
        public int CreditBalance { get; set; }
    }

我的功能看起来像这样:

public static AccountDataResponse AddTransaction(AccountDataRequest details)
    {
        var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://api.parse.com/1/classes/AccountData");
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Method = "POST";
        httpWebRequest.Headers.Add("X-Parse-Application-Id", "xxxxx");
        httpWebRequest.Headers.Add("X-Parse-REST-API-Key", "xxxxx");

        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
            string json = JsonConvert.SerializeObject(details);

            streamWriter.Write(json);
            streamWriter.Flush();
            streamWriter.Close();

            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                var result = streamReader.ReadToEnd();
                return JsonConvert.DeserializeObject<AccountDataResponse>(result);
            }
        }
    }

&#39; user__user&#39;链接到&#39; objectID(String)&#39;在mu用户类。

我已经尝试将其作为字符串添加到我的类中,但它会抛出并出错。

任何人都可以告诉我如何获得ACL和&#39; user__user&#39;请填好吗?

由于

更新

我已经知道Pointer是一个结构,所以修改了我的类如下:

public class AccountDataRequest
{
    public string OrderNo { get; set; }
    public string SiteName { get; set; }
    public string CreditDebit { get; set; }
    public double Amount { get; set; }
    public int CreditBalance { get; set; }
    public Pointer Pointer { get; set; }
}

public class Pointer
{
    public string __type { get; set; }
    public string className { get; set; }
    public string objectId { get; set; }
}

因此,当我现在使用以下内容调用API时:

POST https://api.parse.com/1/classes/AccountData HTTP/1.1
Content-Type: application/json
X-Parse-Application-Id: xxxxx
X-Parse-REST-API-Key: xxxxx
Host: api.parse.com
Content-Length: 163
Expect: 100-continue
Connection: Keep-Alive

{"OrderNo":"9","SiteName":"Trev","CreditDebit":"Debit","Amount":1.0,"CreditBalance":999,"Pointer":{"__type":"Pointer","className":"AccountData","objectId":"fvJ8jPjyjx"}}

此调用不会产生错误并返回createddate和objectid但用户(指针&lt; __ User&gt;仍为空。

我也尝试将className更改为&#34; __ User&#34; API响应:

{"code":111,"error":"invalid type for key Pointer, expected *AccountData, but got *_User"}

这就是我的AccountData类

中空列的样子

enter image description here

我正在尝试将其绑定到User表中的objectId:

enter image description here

有人可以看到有什么问题吗?

1 个答案:

答案 0 :(得分:1)

如果Parse中的列被定义为_User的指针,那么您需要将适当的结构传递给Parse而不仅仅是objectId。看一下Parse REST SDK的Data Types section。它有一个段落和示例,用于通过API传递指针结构。

同样,对于ACL,您还需要指定该结构。它的详细信息位于SDK的security docs

在这两种情况下,如果要使用object-&gt; JSON转换器,则需要构建一个适当表示该结构的对象。指针比ACL更容易,因为前者具有预定义的键,而后者使用动态键名称(例如objectIds和角色名称)。

已更新,以包含课程定义

public class AccountDataRequest
{
    public string OrderNo { get; set; }
    public string SiteName { get; set; }
    public string CreditDebit { get; set; }
    public double Amount { get; set; }
    public int CreditBalance { get; set; }
    public Pointer user { get; set; }
}