通过Retrofit

时间:2017-12-08 08:18:17

标签: android facebook kotlin retrofit2 facebook-access-token

我尝试使用Retrofit从Facebook页面获取帖子,但我无法通过Access令牌,每次收到错误io.reactivex.exceptions.OnErrorNotImplementedException: HTTP 400 Bad Request

这是我的代码:

RetroAPI:

@GET("{page_id}/feed")
fun getPosts(@Path("page_id") pageId : String,
             @Header("access_token") authToken : AccessToken)
             : Observable<Posts>

设置访问令牌:

 AccessToken.setCurrentAccessToken(AccessToken("AppToken", "AppID","userID",null,null,null,null,null))

获取数据:

  var pagePosts : Observable<Posts> = facebook.getPosts("pageID", AccessToken.getCurrentAccessToken())
    pagePosts.observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            .subscribe({result ->
                var a : Posts = result
                var b : List<Data> = result.data
                Log.d("Posts A","${a.data[1].id}")
                Log.d("Data B", "$b")
            })

设置RetrofitAPI:

private val facebook : RetroAPI
    init{
        val retrofit = Retrofit.Builder()
                .baseUrl("https://graph.facebook.com/")
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .build()

        facebook = retrofit.create(RetroAPI::class.java)
    }

1 个答案:

答案 0 :(得分:0)

通常,access_token作为查询参数发送,以验证您的请求。

但是,您也可以以

的形式发送标题

授权:Bearer XXX

但不支持将access_token作为标头发送的AFAIK。