Facebook api传递阵列参数

时间:2018-03-12 12:11:51

标签: java android facebook kotlin

我希望按此要求按类别获取地点:

https://graph.facebook.com/v2.11/search?type=place&center={lat,lng}&categories=["FOOD_BEVERAGE"]

我将类别作为查询发送,并将其改造为List<String>

但它返回:

{
    "error": {
        "message":"(#100) For field 'placesearch': param categories must be an array.",
        "type":"OAuthException",
        "code":100,
    }
}

我试图通过ArrayList执行此操作,将此查询视为String,但它仍然返回我需要一个数组。 我怎么能通过这个?

编辑:

改造界面

@GET("search")
fun getPlaces(
       @Query("center") center: String?,
       @Query("access_token") token: String?,
       @Query("type") type: String?,
       @Query("categories") categories: List<String>
): Observable<Places>

1 个答案:

答案 0 :(得分:0)

您可以添加自定义转换器工厂,将List<String>转换为正确格式的String。请查看此example,而不是Enum您拥有List<String>并使用GetSerializedNameValue()方法代替:

value = categories_list.joinToString(
    separator = ", ",
    prefix = "[",
    postfix = "]"
)