如何使用pf值
什么是pf值
pf是指应用的来源平台。小游戏在代理到应用页面时,会在请求的GET参数中带上本参数。由平台直接传给应用,应用在使用OpenAPI时再原样传给平台即可。
特别注意:pf值在使用的时候都必须保持原样。请不要应用手动构造pf值,也不需要对平台传递的pf进行有效性校验,更不要直接在使用pf值的地方使用常量字符串,同时也不要以pf值来区分不同客户端,区分不同的客户端请以window.OPEN_DATA.qua.app区分,参考全局变量,以避免应用上线多平台时需要付出额外的修改成本,导致调用某些接口时由于参数需要根据pf值生成导致传入参数不合法。
目前小游戏的pf值分平台和来源两部分,以.分割,例如wanba_ts.9、weixin.95,含义如下:
| 值 | 来源 |
| wanba_ts | 手机QQ以及手机QQ空间平台 |
| weixin | 微信平台 |
| 值 | 平台 |
| 9 | 玩吧结合版 |
| 91 | 玩吧独立版 |
| 92 | 合作 |
| 93 | 微端 |
| 94 | 宠物 |
| 95 | 校园应用 |
| 96 | 情侣空间 |
| 97 | PK小游戏 |
| 98 | pc |
| 99 | 微信 |
| 100 | 触屏版 |
| 101 | 腾讯视频-微信 |
| 102 | 腾讯视频-QQ |
| 103 | 手Q阅读 |
| 104 | 广点通 |
| 105 | 厘米秀 |
| 106 | 个性化 |
| 107 | 微端——新登录态版本 |
| 108 | 广点通微端——新登录态版本 |
| 109 | 腾讯新闻网页版 |
| 110 | 小程序 |
| 111 | 企鹅电竞-QQ |
| 112 | 企鹅电竞-微信 |
| 113 | 心悦俱乐部-QQ |
| 114 | 心悦俱乐部-微信 |
| 115 | 天天快报-微信 |
| 116 | 天天快报-互联 |
| 117 | 手Q动漫 |
| 118 | 腾讯新闻-QQ |
| 119 | 腾讯新闻-微信 |
| 120 | 微端-微信 |
| 121 | 广点通微端-微信 |
| 122 | 手Q管家 |
| 123 | 腾讯充值公众号 |
| 124 | 波洞空间微端 |
| 125 | QQ浏览器-QQ |
| 126 | QQ浏览器-微信 |
| 127 | 腾讯游戏管家-QQ |
| 128 | 腾讯游戏管家-微信 |
| 129 | QQ会员 |
| 130 | 浏览器微端 |
| 131 | 腾讯视频微端 |
| 132 | 天天快报微端 |
| 133 | 腾讯新闻微端 |
| 134 | 企鹅电竞微端 |
如何获取pf值
在小游戏平台中,所有游戏访问的入口都是通过appid.urlshare.cn域名访问。在用户访问这个域名时,小游戏平台会在后台请求应用在管理端配置的地址。应用可以在收到请求时,从请求的pathname上取得pf值。
例如:
在打开appid为888的应用时,WebView中访问的地址为https://888.urlshare.cn。小游戏平台会在后台请求这个应用在管理端配置的地址:https://example.com/game/,同时在GET参数中提供包含pf的一系列参数。最终应用收到的请求将会是:https://example.com/game/?openid=****&openkey=****&pf=[wanba_ts|weixin]。
https://example.com/game/的处理程序可以直接从请求的pathname中取得pf的值。
开发者能够获取的完整GET参数,可以参考:空间应用#代理规则
如果应用在管理端配置的地址是一个静态页面,上面的方法虽然会在请求时带上pf值,但应用仍可能无法处理。这时开发者可以考虑在Web页面上使用JavaScript脚本获取pf值。
console.log('pf is ' + window.OPEN_DATA.pf);
如何使用pf值
无论是后台处理程序,还是在Web上使用JavaScript脚本获取的pf值,都必须传到开发者的服务器上,用于调用OpenAPI接口。
关于OpenAPI接口的使用,可以参考:空间·玩吧-后台接口。
特别注意:无论使用何种方式获取的pf值,在使用的时候都必须保持原样。请不要应用手动构造pf值,也不需要对平台传递的pf进行有效性校验,更不要直接在使用pf值的地方使用常量字符串,同时也不要以pf值来区分不同客户端,区分不同的客户端请以window.OPEN_DATA.qua.app区分,参考全局变量,以避免应用上线多平台时需要付出额外的修改成本,导致调用某些接口时由于参数需要根据pf值生成导致传入参数不合法。