我尝试使用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)
}
答案 0 :(得分:0)
通常,access_token作为查询参数发送,以验证您的请求。
但是,您也可以以
的形式发送标题授权:Bearer XXX
但不支持将access_token作为标头发送的AFAIK。