微信个人未认证订阅号有还有引导用户到关注界面和定制分享的方法吗?

2016-01-20 21:56:29 +08:00
 happyjohann

关于订阅:
之前 V2 上有类似的提问(移动网页中还有跳转到微信信息的关注界面吗?)。但一方面时间点不同,微信官方调整了接口;二方面回答很少。

关于分享:
之前 V2 上也有类似的提问(微信分享到朋友圈,怎么自定义分享的标题,图片,内容?)。同样,一方面时间点不同,微信官方调整了接口;二方面回答很少。

嗯,腾讯也是强盗!

折腾了一天,
但关于分享,虽然没有完美解决办法,总归有曲线救国的办法。关于微信 jssdk 中,分享内容自定义的代码实现;
但关于订阅,就完全没有办法了。

我尝试过的:
方法 | 备注
--- | ---
<a href="http://weixin.qq.com/r/dUPF3XjEjyXwrTy_9xZn">中文学习</a> | 链接为二维码解码生成,失效
<a href="weixin://profile/gh_5yd69eefc49e">中文学习</a> | gh 开头的为微信公众平台原始 id ,无效
<a href="weixin://profile/zhongwenxuexi">中文学习</a> | zh...为微信公众平台号,无效
<a href="weixin://addfriend/gh_5yd69eefc49e">中文学习</a> | 无效
<a href="weixin://addfriend/zhongwenxuexi">中文学习</a> | 无效
<a href="weixin://contacts/profile/gh_5yd69eefc49e">中文学习</a> | 无效
<a href="weixin://contacts/profile/zhongwenxuexi">中文学习</a> | 无效
<a href="https://open.weixin.qq.com/subscribe?appid=*theappid*">中文学习</a> | 没有认证,也无法获取 OPENID ,并且据说也无效

以下据说仅对官方域名有效,反正对我没有认证的订阅号无效
javascript
var addWxContact = function(wxid, cb)
{
if (typeof WeixinJSBridge == 'undefined') return false;
WeixinJSBridge.invoke('addContact', {
webtype: '1',
username: wxid
}, function(d) {
// 返回 d.err_msg 取值, d 还有一个属性是 err_desc
// add_contact:cancel 用户取消
// add_contact:fail  关注失败
// add_contact:ok 关注成功
// add_contact:added 已经关注
WeixinJSBridge.log(d.err_msg);
cb && cb(d.err_msg);
});
};

当前方法 - 使用微信后台素材文章中的蓝色字链接
问题是,用户需要先多浏览一个页面,然后还要点击蓝色字,显然是不合理的。

基于以上,用<div>+<iframe>,结果是点击蓝色字是无效的!

最后就是一个貌似可以的, 即如何在微信图文页中加入真正的“一键关注”按钮?,不过比认证更大的问题是,要么原创认证要么交钱广告主,而去还要体力活儿去找链接。
所以,鹅厂已经开始强盗了!!!

所以我已经没有办法了,有大神支个招么?

6572 次点击
所在节点    微信
5 条回复
abelyao
2016-01-20 23:22:50 +08:00
认证了也没有引导到公众号名片的方法吧?
happyjohann
2016-01-21 00:40:59 +08:00
@abelyao 这个就不清楚了,不过从工作平台用图文素材直接发出来的是的确可以引导到公众号名片的。我尝试查看图文素材发出来页面的代码,然而功力太浅,没能搞定。
index2a9baf.js 中 190 行有一段
```javascript
var u = e("appmsg/copyright_report.js"), A = e("biz_common/dom/event.js"), _ = e("biz_wap/jsapi/core.js");
!function() {
var e = document.getElementById("post-user"), t = document.getElementById("copyright_info"), o = [];
if (e) {
var n = "57";
"26" == window.source && (n = "95"), "28" == window.source && (n = "96"), o.push({
dom: e,
username: user_name_new || user_name,
scene: n
});
}
t && source_username && o.push({
dom: t,
username: source_username,
profile_ext_signature: profile_ext_signature,
scene: "84"
});
for (var i = 0, r = o.length; r > i; i++)
!function(e) {
A.on(e.dom, "click", function() {
return "copyright_info" == e.dom.id && source_username ? (u.card_click_report({
scene: "0"
}), location.href = "https://mp.weixin.qq.com/mp/profile_ext?action=home&username=" + e.username + "&sn=" + e.profile_ext_signature + "&scene=1#wechat_redirect") : _.invoke("profile", {
username: e.username,
scene: e.scene
}, function() {
window.__addIdKeyReport("28307", "1");
}), !1;
}), p.isWp && e.dom.setAttribute("href", "weixin://profile/" + e.username);
}(o[i]);
}(), function() {
location.href.match(/fontScale=\d+/) && p.isIOS && _.on("menu:setfont", function(e) {
e.fontScale <= 0 && (e.fontScale = 100), document.getElementsByTagName("html").item(0).style.webkitTextSizeAdjust = e.fontScale + "%",
document.getElementsByTagName("html").item(0).style.lineHeight = 160 / e.fontScale;
});
}();
```
index2a9baf.js 中 265 行还有一段
```javascript
var p = document.getElementById("js_profile_qrcode"), d = document.getElementById("js_profile_arrow_wrp"), l = document.getElementById("post-user");
if (p && l && d) {
var w = function() {
var e = 10000005, t = document.referrer;
0 == t.indexOf("http://weixin.sogou.com") ? e = 10000006 : 0 == t.indexOf("https://wx.qq.com") && (e = 10000007);
var o = document.getElementById("js_profile_qrcode_img");
o && o.setAttribute("src", "/mp/qrcode?scene=" + e + "&size=102&__biz=" + biz), p.style.display = "block";
var n = new Image;
return n.src = "/mp/report?action=pcclick&__biz=" + biz + "&uin=" + uin + "&scene=" + e + "&r=" + Math.random(),
d.style.left = l.offsetLeft - p.offsetLeft + l.offsetWidth / 2 - 8 + "px", !1;
};
A.on(l, "click", w), A.on(p, "click", w), A.on(document, "click", function(e) {
var t = e.target || e.srcElement;
t != l && t != p && (p.style.display = "none");
});
}
```
对应的 html 文件内容形式如下:
```html
<a class="rich_media_meta rich_media_meta_link rich_media_meta_nickname" href="javascript:void(0);" id="post-user">中文学习</a>
```
abelyao
2016-01-21 00:56:42 +08:00
@happyjohann 微信有些 JS 是直接在本地的(也就是微信的 APP 内)然后由浏览器根据一些条件,如域名,来外挂 JS 实现一些特有功能,仅仅分析页面上的 JS 没用… 另外你给出的这个方法,看到那 3 点准备工作就不想试了…
oott123
2016-01-21 01:32:27 +08:00
目前而言只有你说的那个办法可以。
如果你找到了新办法,那用不了多久就会被封的…
happyjohann
2016-01-21 13:35:46 +08:00
@abelyao 是的,最大的问题是 带蓝色字的页面是无法自己定制的,如果可以在里面植入一点儿 js 代码,自动点击蓝色字体也就好办了,然而并不能……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/252220

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX