我拥有许多github存储库,通常每周都会添加项目。我正在使用github页面创建自己的网站,因为我只能在Github Pages上托管静态网站,因此我将使用Github API来自动更新我网站上的新项目。但我也想在其中添加预览/示例图像。
我知道有一个名为“社交预览”的选项,可以在其中添加要在社交媒体上显示的存储库图像。
尽管我可以从api.github.com
获取我的所有回购信息,但是我却无法获得我的社交媒体预览图像网址。
答案 0 :(得分:3)
GitHub GraphQL API v4具有用于查询OpenGraph图像URL的字段。它使用回购设置中设置的社交图像,并回退到用户个人资料图像。
Link to docs并搜索“ openGraphImageUrl”。
您可以使用GitHub的GraphQL API explorer(需要登录)进行测试并查询:
public class User{
private String firstName;
private String lastName;
}
import javax.persistence.criteria.Predicate;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User,Long>{
public Page<AppUser> findAll(Specification<AppUser> user,Pageable page);
public default Page<AppUser> findAll(User user,Pageable page){
return findAll(search(user),page);
}
static Specification<User> search(User entity) {
return (root, cq, cb) -> {
//To ensure we start with a predicate
Predicate predicate = cb.isTrue(cb.literal(true));
if(entity.getFirstName() != null && !entity.getFirstName().isBlank()) {
Predicate _predicate = cb.like(cb.lower(root.get("firstName")), "%"+entity.getFirstName().toLowerCase()+"%");
predicate = cb.and(predicate,_predicate);
}
if(entity.getLastName() != null && !entity.getLastName().isBlank()) {
Predicate _predicate = cb.like(cb.lower(root.get("lastName")), "%"+entity.getLastName().toLowerCase()+"%");
predicate = cb.and(predicate,_predicate);
}
return predicate;
}
}
}
答案 1 :(得分:0)
我认为GitHub API无法实现,但是您可以尝试解析存储库页面HTML中的<meta property="og:image" content="[IMAGE-URL]"/>
标签。
答案 2 :(得分:0)
我也遇到了同样的问题,但我想采用存储库链接并在其后附加/settings/og-template
字符串。
这将返回与您在社交预览中添加的图像相同的图像。因此,遍历存储库的每个链接,添加添加该字符串应返回相应的 Social Preview
试试吧!