我对Facebook的审核流程感到非常沮丧 . 到目前为止我所经历过的所有人中最乏味的(包括Apple / Google Play) . 我们最新的难题是,在Android上,Facebook会抛出一个权限错误,但它在iOS上运行正常 .
我们的技术堆栈的上下文 . 我们使用react-native(0.55.4),react-native-firebase和react-native-fbsdk . 我认为facebook sdk的原生版本可能在iOS上更老,而且在Android上可能更新 . 但设置工作正常,登录很好,所有这一切 .
备份了一下 . 此功能用于显示用户附近的地点列表 . 我们的代码是一个简单的图形API请求,正是这样:
export async function getNearbyFacebookPlaces (location: RadarLocation): Promise<FacebookPlace[]> {
const facebookEdge = 'search?type=place¢er=' +
location.latitude + ',' + location.longitude +
'&distance=' + MAX_NEARBY_PLACE_DISTANCE +
'&fields=name,location,category_list'
try {
const results: InitFacebookPlace[] = await startGraphRequest(facebookEdge)
return results.map((place: InitFacebookPlace): FacebookPlace => {
const primaryCategory = place.category_list[0].name.replace(/\s+/g, '-').toLowerCase()
return {
facebookId: place.id,
name: place.name,
location: place.location,
categories: [primaryCategory]
}
})
} catch (e) {
console.error(e)
throw e
}
}
// Promise wrapper around a desired graph edge:
function startGraphRequest (path: string): Promise<Array<Object>> {
return new Promise((resolve, reject) => {
new GraphRequestManager().addRequest(new GraphRequest(
path,
graphConfig,
(error: ?Object, result: ?Object) => {
if (error) {
reject(error)
} else if (result) {
resolve(result.data)
} else {
reject(new Error('No result object on facebook graph request.'))
}
}
)).start()
})
}
不要介意一些额外的东西 . Legit只是调用搜索 endpoints .
此代码在iOS上完美运行,并返回几个非常好的结果 . 但是在Android上,我们得到了这些错误: FacebookServiceException ... oAuthException, message: (#10) To use 'Page Public Content Access', your use of this endpoint must be reviewed'
等等 . 重复同样的事情很多次 .
为什么我们在Android上会出现此错误,但在iOS上却没有,我怎样才能让它在Android上运行?
我想了解它在iOS上运行的原因是为了在Android上获得同样的魔力 . 这将是一项疯狂的工作量(创建新的测试Facebook应用程序,新的firebase项目,复制每个设置,在项目中重新配置facebook sdk以用于一个简单的功能等),所以它很好在Android上获得神奇的iOS行为 .