laravel解决微信二次分享丢失缩略图和摘要

23 篇文章 0 订阅
20 篇文章 0 订阅

最近用AJAX调用微信JSSDK自定义分享图标和摘要的时候出现了问题:第一次分享正常:

但从分享链接点开,再次转发分享的时候,一次分享时定义的信息全被抹杀了,又出现了那个恶心的回形针。

原来:微信在进行二次分享后会给该链接自动加上from以及isappinstalled这两个参数证明该链接是二次分享过来的,会导致二次分享进行签名时失效,剩下空荡荡的链接以及白色缩略图,很是恶心。

那就直接把这个尾巴干掉,重定向就是了,laravel 控制器方法先加上两行:

  //解决微信二次分享丢失自定义摘要与图标问题。删除微信浏览器添加的“尾巴”
        if(strpos(url()->full(),"from")>0){
            return redirect(url()->current());

        }

测试成功!

用原生PHP的话,在页面顶部这么写就行了:

<?php
//解决微信分享再次分享的问题
    $full_rul='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
//echo $full_rul;
     if(strpos($full_rul,"&from")>0) {
         $full_rul=substr($full_rul,0,strpos($full_rul,"&from"));
         Header("Location: $full_rul");
         exit();
     }
		//from也可能是第一个参数
     if(strpos($full_rul,"?from")>0) {
         $full_rul=substr($full_rul,0,strpos($full_rul,"?from"));
         Header("Location: $full_rul");
         exit();
     }
///

 

有关:《网页链接分享到微信朋友圈带图标和摘要的方法

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Laravel 中实现微信分享功能,你需要完成以下步骤: 1. 注册微信开放平台账号并创建一个应用。 2. 在 Laravel 项目中安装 EasyWeChat 扩展包。可以通过 composer 进行安装:`composer require overtrue/laravel-wechat`。 3. 在 `config/app.php` 文件中的 `providers` 数组中添加服务提供者:`Overtrue\LaravelWeChat\ServiceProvider::class`。 4. 运行以下命令发布配置文件:`php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"`。 5. 在 `.env` 文件中配置微信相关的信息,包括 `WECHAT_APPID`、`WECHAT_SECRET`、`WECHAT_TOKEN` 和 `WECHAT_AES_KEY`。 6. 创建一个路由和控制器来处理微信分享请求,例如在 `routes/web.php` 文件中添加以下代码: ```php Route::get('/wechat/share', 'WeChatController@share'); ``` 7. 创建 `WeChatController` 控制器并在其中实现 `share()` 方法,例如: ```php <?php namespace App\Http\Controllers; use EasyWeChat\Factory; class WeChatController extends Controller { public function share() { $config = [ 'app_id' => config('wechat.appid'), 'secret' => config('wechat.secret'), 'token' => config('wechat.token'), 'aes_key' => config('wechat.aes_key') ]; $app = Factory::officialAccount($config); $jssdk = $app->jssdk; $url = request()->fullUrl(); $shareConfig = $jssdk->setUrl($url)->buildConfig(['onMenuShareTimeline', 'onMenuShareAppMessage'], false); return view('wechat.share', compact('shareConfig')); } } ``` 8. 创建一个视图来显示分享相关的页面,例如 `resources/views/wechat/share.blade.php`: ```html <!DOCTYPE html> <html> <head> <title>WeChat Share</title> <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> </head> <body> <!-- 在此处使用 $shareConfig 配置微信分享 --> </body> </html> ``` 9. 在 `share.blade.php` 视图中使用 `$shareConfig` 配置微信分享,具体使用方法可以参考 EasyWeChat 文档。 现在,当用户访问 `/wechat/share` 路径时,将会显示一个包含微信分享功能的页面。你可以根据需要自定义分享的标题、描述、链接等信息。记得在微信开放平台中配置好相关的网页授权和分享设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值